数组水题合集——LeetCode题海实战汇总

目录

LeetCode1295.统计位数为偶数的数字

LeetCode1252.奇数值单元格的数组

LeetCode1304.和为零的N个唯一整数

LeetCode1299.将每个元素替换为右侧最大元素

LeetCode26.删除排序数组中的重复项

LeetCode面试题16.01.交换数字

LeetCode1313.解压缩编码列表

LeetCode1351.统计有序矩阵中的负数

LeetCode面试题01.07.旋转矩阵


LeetCode1295.统计位数为偶数的数字

数组水题合集——LeetCode题海实战汇总_第1张图片

常规解法,一分钟没AC就算不合格吧

class Solution {
public:
    int findNumbers(vector& nums) {
        int sum = 0;
        for(int i=0;i0){
                nums[i]/=10;
                n++;
            }
            if(n%2==0)
                sum++;
        }
        return sum;
    }
};

强制类型转换,用to_string转换成string类型再判断!

class Solution {
public:
    int findNumbers(vector& nums) {
        int sum = 0;
        for(int i=0;i

LeetCode1252.奇数值单元格的数组

记得不是全局变量的话要自己手动赋值为零,简单模拟即可,水题

数组水题合集——LeetCode题海实战汇总_第2张图片

class Solution {
public:
    int oddCells(int n, int m, vector>& indices) {
        int a[n][m];
        //必须要这样赋值0
        for(int i=0;i

LeetCode1304.和为零的N个唯一整数

 数组水题合集——LeetCode题海实战汇总_第3张图片

中奖……当然其他的解法有很多,自行DIY

数组水题合集——LeetCode题海实战汇总_第4张图片

class Solution {
public:
    vector sumZero(int n) {
        vector v;
        if(n%2==0)
            for(int i=-n/2;i<=n/2;i++){
                if(i!=0)
                    v.push_back(i);
            }
        else{
            for(int i=-n/2;i<=n/2;i++){
                v.push_back(i);
            }
        }
        return v;
    }
};

LeetCode1299.将每个元素替换为右侧最大元素

数组水题合集——LeetCode题海实战汇总_第5张图片

先一顿瞎暴力,瞎几把乱搞一通AC就对了哈哈

class Solution {
public:
    vector replaceElements(vector& arr) {
        //先瞎暴力AC再说
        int i;
        for(i=0;imaxnum?arr[j]:maxnum;
            }
            arr[i] = maxnum;
        }
        arr[i] = -1;
        return arr;
    }
};

其实改进的方法是每次最大位置不用重复查找,记录其下标就行;

可以将复杂度降低,从O(n^n)降为O(n)

LeetCode26.删除排序数组中的重复项

数组水题合集——LeetCode题海实战汇总_第6张图片

讨巧写法:利用set自动去重的特性(不推荐)

class Solution {
public:
    int removeDuplicates(vector& nums) {
        set s(nums.begin(),nums.end());
        int i=0;
        for(set::iterator it = s.begin();it!=s.end();it++){
            nums[i++] = *it;
        }
        return s.size();
    }
};

 dalao写法,我是想不来;

解释一下,答案会对数组自动切片去前n个数,所以直接赋值不管后面的数是怎样就好

class Solution {
public:
    int removeDuplicates(vector& nums) {
        if(nums.size()<2)
            return nums.size();
        int i = 0;
        int size = nums.size();
        for(int j = 1;j

LeetCode面试题16.01.交换数字

这题真是佛,我只能说这骚操作666

我佛了

数组水题合集——LeetCode题海实战汇总_第7张图片

class Solution {
public:
    vector swapNumbers(vector& numbers) {
        if(numbers[0]>0 && numbers[1]>0 || numbers[0]<0 && numbers[1]<0){
            numbers[0]=-numbers[0];
            numbers[0]=numbers[0]+numbers[1];
            numbers[1]=numbers[1]-numbers[0];
            numbers[0]=numbers[0]+numbers[1];
        }else{
            numbers[0]=numbers[0]+numbers[1];
            numbers[1]=numbers[0]-numbers[1];
            numbers[0]=numbers[0]-numbers[1];
        }
        return numbers;
    }
};

LeetCode1313.解压缩编码列表

水题……这都能中奖,佛了

数组水题合集——LeetCode题海实战汇总_第8张图片

数组水题合集——LeetCode题海实战汇总_第9张图片

 

class Solution {
public:
    vector decompressRLElist(vector& nums) {
        vector v;
        for(int i=0;i

LeetCode1351.统计有序矩阵中的负数

明显是二分,但是我二分还没有开始刷,不管,先花30秒A一遍再说

今天因为出去钓鱼耽误了刷链表的进度,还是这两天尽快把链表刷熟练了,开始二分!

数组水题合集——LeetCode题海实战汇总_第10张图片

class Solution {
public:
    int countNegatives(vector>& grid) {
        int sum = 0;
        for(int i=0;i

LeetCode面试题01.07.旋转矩阵

这题略显无聊……

数组水题合集——LeetCode题海实战汇总_第11张图片

class Solution {
public:
    void rotate(vector>& matrix) {
        if(matrix.size()==0||matrix.size()!=matrix[0].size())
            return;
        int n = matrix.size();
        for(int layer = 0;layer

LeetCode717.1比特与2比特字符

关键是问题!最后一个字符是否必定是1比特,然后重点是给定的字符串总是由0结束!

所以最后一个元素0前面要是有奇数个零,那么为true,否则为false!

总体来说这道题和一般企业机试的风格挺像的,有点智商题的味道!

数组水题合集——LeetCode题海实战汇总_第12张图片

class Solution {
public:
    bool isOneBitCharacter(vector& bits) {
        int sum = 0;
        // 统计最后一个元素前面连续1的个数
        for(int i = bits.size()-2;i>=0;i--){
            if(bits[i]==0)
                break;
            else
                sum++;
        }
        return sum%2==0;
    }
};

 

你可能感兴趣的:(LeetCode,算法—STL与数据结构,LeetCode经典)