C/C++教程

leetcode算法刷题记录之唯一元素的和

本文主要是介绍leetcode算法刷题记录之唯一元素的和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/**
 * 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。
 * 请你返回 nums 中唯一元素的 和 。
 * 
 * 示例 1:
 * 输入:nums = [1,2,3,2]
 * 输出:4
 * 解释:唯一元素为 [1,3] ,和为 4 。
 * 
 * 示例 2:
 * 输入:nums = [1,1,1,1,1]
 * 输出:0
 * 解释:没有唯一元素,和为 0 。
 * 
 * 解题思路:
 * 1.用一个Object记录nums中每个元素与其出现的次数(nums[i]为key, 出现次数为value)
 * 2.遍历Object,求value值为1的项的key的和
 */

/**
 * @param {number[]} nums
 * @return {number}
 */
var sumOfUnique = function(nums) {
    if(nums.length == 1){
        return nums[0];
    }
    var obj = {};
    for(var i=0;i<nums.length;i++){
        if(nums[i] in obj){
            obj[nums[i]]++;
        }else{
            obj[nums[i]] = 1;
        }
    }
    return Object.keys(obj).filter(v=>obj[v]==1).reduce((a,b)=>Number(a)+Number(b),0);
};
var nums = [1,2,3,2];
console.log(sumOfUnique(nums));

 

这篇关于leetcode算法刷题记录之唯一元素的和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!