1.1、题目1
剑指 Offer 56 – I. 数组中数字出现的次数
1.2、解法
救命,真不会用位运算,还是用哈希表做吧,位运算过段时间再学习~~~
搞不来,虽然说哈希表时间和内存消耗确实高。。。。。
这里用Entry提出来遍历哈希表。取值放数组。
1.3、代码
class Solution {
public int[] singleNumbers(int[] nums) {
int []res = new int[2];
int j=0;
HashMap map = new LinkedHashMap();
for(int i = 0; i < nums.length ; ++i){
map.put(nums[i],map.getOrDefault(nums[i],0)+1);
}
for(Map.Entry entry:map.entrySet() ){
if(entry.getValue() == 1){
res[j]=entry.getKey();
j++;
}
}
return res;
}
}
2.1、题目2
剑指 Offer 56 – II. 数组中数字出现的次数 II
2.2、解法
用了跟上面那题一样的解法,位运算想学你们就去看题解吧,我懒得copy过来,我也不太懂
2.3、代码
class Solution {
public int singleNumber(int[] nums) {
Map map = new HashMap();
for(int i = nums.length - 1; i >= 0; --i){
int key = nums[i];
map.put(key, map.getOrDefault(key, 0) + 1);
}
for(Map.Entry entry: map.entrySet()){
if(entry.getValue() == 1){
return entry.getKey();
}
}
return -1;
}
}
Original: https://www.cnblogs.com/cxykhaos/p/15318644.html
Author: 程序员khaos
Title: 剑指offer计划22( 位运算中等)—java
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598470/
转载文章受原作者版权保护。转载请注明原作者出处!