首页 > 编程语言 > 详细

leetcode刷题之数组相关

时间:2021-04-01 10:10:32      阅读:14      评论:0      收藏:0      [点我收藏+]
  • q27 移除元素
    题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
    思考:移除所有数值等于val的元素,即碰到等于val的元素就将其删除,然后统计数组长度并输出
public int removeElement(int[] nums, int val) {
          int len = nums.length;
        //考虑特殊情况
          if (len == 0) {
              return 0;
          }
          int i = 0;
          for (int j = 0; j < nums.length; ++j) {
                //如果等于目标值,则删除
                if (nums[j] == val) {
                    continue;
                }
                // 不等于目标值时,则赋值给num[i],i++
                nums[i++] = nums[j];
          }
          return i;
    }
  • q485 最大连续1的个数
    题目描述:给定一个二进制数组, 计算其中最大连续 1 的个数。
    思考:计算最大连续1的个数,肯定需要遍历数组,然后还需要一个辅助变量统计数组中每段连续1的个数,遇到0将其保存下来,并与之前保存的数比较大小,大则更新,否则不更新,最后输出。
public int findMaxConsecutiveOnes(int[] nums) {
        int length=nums.length;
        int i=0;
        int j=0;
        for(int k=0;k<length;k++){
            //如果数值等于1,就将i自增
            if(nums[k]==1){
                i++;
            }else{
            //否则的话,保存i和j之中的大值,令i=0,重新开始计数
                j=Math.max(i,j);
                i=0;
            }
        }
        //最后输出两者之中的较大值
        return Math.max(i,j);
    }
  • q66 加一
    题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。
    思考:本题中可能要产生进位问题,具体来说,三种情况:一是个位上的数加一小于等于9,这种情况返回即可;二是连续好几位为9,加1势必要产生进位,直到遇到某位上数字不是9,进位停止。三是所有位置上都是9,这种情况直接定义新数组,长度为给定的数组加一,最高位为1,其余位为0,输出。
public int[] plusOne(int[] digits) {
        int s=digits.length;
        //从个位开始,加1并模10
        for(int i=s-1;i>=0;i--){
            digits[i]++;
            digits[i]%=10;
            //如果不等于0,直接输出
            if(digits[i]!=0){
                return digits;
            }
        }
        //循环完毕,模10的值全部等于0;则直接定义新数组,最高位为1,其余为0,直接输出。
        int[] arr = new int[s+1]; 
        arr[0] = 1;
        return arr;

    }

leetcode刷题之数组相关

原文:https://www.cnblogs.com/dong-qing/p/14604784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!