目录
1.个人总结:
相对与个人,这个星期的最大收获就是拿到驾照了,虽然中间经历了一小点曲折,但最终拿到手还是很开心的。关于最近在写的项目已经完善的差不多了,我想下个星期必须开始新的知识学习了,不能光是处在舒适区吧。
记录一下这个星期写的两个算法:
2.算法记录:
(1)数组中出现次数超过一半的数字:
class Solution {
public int majorityElement(int[] nums) {
int l=nums.length,mid=(int)(l/2);
boolean[] boo=new boolean[l];
for(int left=0;left<l-1;left++) {
if(boo[left]) {
continue;
}
boo[left]=true;
int sum=1;
for(int right=left+1;right<l;right++) {
if(nums[left]==nums[right]) {
boo[right]=true;
sum++;
}
}
if(sum>mid) {
return nums[left];
}
}
return nums[0];
}
}
用boo数组记录是否访问过来减少执行次数;
(2)连续子数组的最大和:
class Solution {
public int maxSubArray(int[] nums) {
int end=nums[0],newm=0;
for(int i:nums){
newm=Math.max(newm+i,i);
end=Math.max(newm,end);
}
return end;
}
}
借用newn来记录数组的最大值;