java 二分 go哈希表
java版本:
class Solution {
public int singleNonDuplicate(int[] nums) {
// 有序。。。。
// 二分查找
int l=0,r=nums.length-1;
int res=nums[0];
if(nums.length<2){
return res;
}
while(l<=r){
if(nums[l+1]==nums[l]){
l+=2;
}else{
res=nums[l];
break;
}
if(nums[r-1]==nums[r]){
r-=2;
}else{
res=nums[r];
break;
}
}
return res;
}
}
Go版本:
func singleNonDuplicate(nums []int) int {
// 构造哈希表
// 靠哈希表查找
hashmap:=make(map[int]int);
for i:=0;i<len(nums);i++{
hashmap[nums[i]]++;
}
res:=0
for key,value:=range hashmap{
if value==1{
res=key;
}
}
return res;
}
剑指 Offer 41. 数据流中的中位数
java版本:
class MedianFinder {
ArrayList<Integer> arr;
/** initialize your data structure here. */
public MedianFinder() {
this.arr=new ArrayList<>();
}
public void addNum(int num) {
this.arr.add(num);
}
public double findMedian() {
// 在这里进行排序
int n=this.arr.size();
Collections.sort(this.arr);
if(n%2!=0){
return Double.valueOf(this.arr.get(n/2));
}else{
double a1=this.arr.get(n/2-1);
double a2=this.arr.get(n/2);
return (a1+a2)/2;
}
}
}
网友评论