荷兰网站开发价格,免费flash网站源码,网页制作与设计实训心得,东莞做展示网站的公司这个合集已经很久没有更新了#xff0c;今天来更新更新~~~ 目录
力扣题号
题目
题目描述
示例
提示
题解
Java解法一#xff1a;Map集合
Java解法二#xff1a;位运算
C位运算代码 力扣题号
136. 只出现一次的数字 - 力扣#xff08;LeetCode#xff09;
下述题…这个合集已经很久没有更新了今天来更新更新~~~ 目录
力扣题号
题目
题目描述
示例
提示
题解
Java解法一Map集合
Java解法二位运算
C位运算代码 力扣题号
136. 只出现一次的数字 - 力扣LeetCode
下述题目描述和示例均来自力扣
题目
题目描述 给你一个 非空 整数数组 nums 除了某个元素只出现一次以外其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题且该算法只使用常量额外空间。 示例 示例 1 输入nums [2,2,1]
输出1示例 2 输入nums [4,1,2,1,2]
输出4示例 3 输入nums [1]
输出1提示 1 nums.length 3 * 104-3 * 104 nums[i] 3 * 104除了某个元素只出现一次以外其余每个元素均出现两次。 题解
Java解法一Map集合
使用map集合记录每一个数字出现的次数确实是我一开始的想法遍历这个数组记录每次遇到的数字的次数key 是数字value是这个数字出现的次数然后寻找那个value为1的值即可。
class Solution {public int singleNumber(int[] nums) {// 定义出map集合MapInteger,Integer map new HashMap();// 将nums 的数据存储到map之中for (int num : nums) {map.put(num, map.getOrDefault(num, 0) 1);}// 寻找那个为一的元素for (Integer key : map.keySet()) {if (map.get(key) 1){// 找到了直接返回return key;}}return -1;}
} 那还是挺慢的只打败了7.72%的人
Java解法二位运算
这个东西刚好是两位两位的一位不一样直接异或运算
不理解异或运算可以看看力扣给的 class Solution {public int singleNumber(int[] nums) {int res 0;for (int num : nums) {res ^ num;}return res;}
}C位运算代码
class Solution {
public:int singleNumber(vectorint nums) {int res 0;for(auto num : nums){res ^ num;}return res;}
}; 我就好奇前80%的人都写出来了啥玩意儿。