数组的遍历
485. 最大连续1的个数
题解
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int max=0,count=0;
for(int i=0;i<nums.length;i++){
if(nums[i]==1){
count++;
}else{
max=Math.max(count,max);
count=0;
}
}
return Math.max(count,max);
}
}
这题过于简单,就不一一说明,唯一注意的点,就是到最后为一,且数出来的数可能比记录的数大。
495. 提莫攻击
题解
class Solution {
public int findPoisonedDuration(int[] timeSeries, int duration) {
if(timeSeries.length<1){
return 0;
}
int sum=0;
for(int i=1;i<timeSeries.length;i++){
if(timeSeries[i]-timeSeries[i-1]>=duration){
sum+=duration;
}else{
sum+=timeSeries[i]-timeSeries[i-1];
}
}
return sum+duration;
}
}
二维数组及滚动数组
118、杨辉三角形
示例:
输入: 5 输出: [ 1 ], [ 1 , 1 ], [ 1 , 2 , 1 ], [ 1 , 3 , 3 , 1 ],
[ 1 , 4 , 6 , 4 , 1]
杨辉三角是刚学C语言的时候就做过的一道题了,这还是挺简单的,网上也有很多的题解,下面是我的题解,就不做过多赘述了。
题解
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res=new ArrayList<>(numRows);
for(int i=0;i<numRows;i++){
List<Integer> nums=new ArrayList<Integer>(i+1);
for(int j=0;j<i+1;j++){
if(j==0||j==i){
nums.add(1);
}else{
List<Integer> num=res.get(i-1);
nums.add(num.get(j-1)+num.get(j));
}
}
res.add(nums);
}
return res;
}
}