美文网首页
2020-02-07 刷题 2(数组)

2020-02-07 刷题 2(数组)

作者: nowherespyfly | 来源:发表于2020-02-07 18:46 被阅读0次

66 加一

思路很简单,从后向前扫描,如果当前位小于9,就加一然后退出循环,否则置零继续向前循环。最后判断一下第一位是不是0,是的话就在最前面插入1.
代码:

time: 79.93%, memory:5.37%
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
    int dig_len = digits.size();
    for(int i = dig_len - 1; i >= 0; i--){
        if (digits[i] < 9){
            digits[i]++;
            break;
        }
        else
            digits[i] = 0;
    }
    if (digits[0] == 0)
        digits.insert(digits.begin(), 1);
    return digits;
}
};

283 移动零

题目要求将所有0移动到数组最后,其实可以反过来将不是0的移动到前面,最后将剩下的空置零。采用双指针法,一个记录当前非零数已经填充到哪里,一个记录当前扫描到哪里。
标签: 数组,双指针
代码:

time: 94.83%, memory: 5.03%
class Solution {
public:
void moveZeroes(vector<int>& nums) {
   int num_len = nums.size();
   int p = 0, q = 0;
   // move other elements to front
   for(;q < num_len; q++){
       if(nums[q] != 0){
           nums[p] = nums[q];
           p++;
       }
   }
   while(p < num_len){
       nums[p] = 0;
       p++;
   }
}
};

相关文章

  • 2020-02-07 刷题 2(数组)

    66 加一 思路很简单,从后向前扫描,如果当前位小于9,就加一然后退出循环,否则置零继续向前循环。最后判断一下第一...

  • 刷题-数组专项

    数组 二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每...

  • 2020-06-30 刷题2(数组)

    1. 判断字符是否唯一(面试题01.01) 用数组 2. 判定是否为字符串重排 还是用数组。

  • 2020-02-05 刷题2(数组)

    189 旋转数组 数组整体移位的题目。最简单的就是,用另一个数组来暂时存放,时间复杂度O(n), 空间复杂度O(n...

  • 2020-02-08 刷题 2(数组)

    36 有效的数独 由于二维数组一共只有81个数,所以基本都可以保证常数时间复杂度和常数空间复杂度。官方题解里,每行...

  • 数组-Python刷题笔记

    二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上...

  • leetcode刷题之数组

    leetcode刷题,使用python 1, 两数之和—— 0001 数组给定一个整数数组 nums 和一个整数...

  • [数组]442. Find All Duplicates in

    标签(空格分隔): 数组 leetcode 刷题 题目链接 给定一个数组,1≤a[i]≤n(n =数组的大小),里...

  • Java全排列递归算法

    刷题!刷题!发现对于数组元素的全排列很多题目都有涉及到,所以详细研究一下对一个数组进行全排列,我们可以这样考虑,我...

  • leecode刷题(3)-- 旋转数组

    leecode刷题(3)-- 旋转数组 旋转数组 给定一个数组,将数组中的元素向右移动 K 个位置,其中 K 是非...

网友评论

      本文标题:2020-02-07 刷题 2(数组)

      本文链接:https://www.haomeiwen.com/subject/qdfvxhtx.html