Leetcode——数组的改变、移动练习

453. 最小操作次数使数组元素相等

本人答案超时

cpp 复制代码
class Solution {
public:
    int minMoves(vector<int>& nums) {
        int len = nums.size();
        int count = 0;
        if (len == 1) {
            count = 0;
        }
        else {
            while (nums[0] != nums[1] || nums[len - 2] != nums[len - 1]) {
                for (int i = 0; i < len - 1; i++) {
                    nums[i]++;
                }
                sort(nums.begin(), nums.end());
                count++;
            }
        }
        return count;
    }
};

本题逆向思维,思路好难想,学习一下

665. 非递减数列

cpp 复制代码
class Solution {
public:
    bool checkPossibility(vector<int>& nums) {
        int count = 0;
        for (int i = 0; i < nums.size() - 1; i++) {
            if (nums[i] > nums[i + 1]) {
                count++;
                if (i > 0 && nums[i + 1] < nums[i - 1]) {
                    nums[i + 1] = nums[i];
                }
            }
        }
        if (count <= 1) {
            return true;
        }
        else {
            return false;
        }
    }
};

283. 移动零


cpp 复制代码
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int len = nums.size(), left = 0, right = 0;
        while (right < len) {
            if (nums[right]) {
                swap(nums[left], nums[right]);
                left++;
            }
            right++;
        }
    }
};
相关推荐
Дерек的学习记录14 小时前
C++:入门基础(下)
开发语言·数据结构·c++·学习·算法·visualstudio
yugi98783815 小时前
无线传感器网络中GAF算法节点特性分析
网络·算法
1027lonikitave15 小时前
使用斐波那契数列讲解尾递归
算法
滴滴答滴答答16 小时前
LeetCode Hot100 之 16 合并两个有序链表
算法·leetcode·链表
ASKED_201917 小时前
企业级大模型微调(Fine-tuning)策略
大数据·人工智能·算法
圣保罗的大教堂17 小时前
leetcode 3713. 最长的平衡子串 I 中等
leetcode
t1987512817 小时前
基于Chirp分解和多相快速算法的离散分数傅里叶变换(DFRFT)MATLAB实现
开发语言·算法·matlab
愚者游世17 小时前
力扣解决二进制 | 题型常用知识点梳理
c++·程序人生·算法·leetcode·职场和发展
阿星AI工作室18 小时前
宝藏skills!90个顶尖博客信源自动抓,AI每天帮我筛出20篇精华!
人工智能·算法
Ulyanov18 小时前
基于Python的单脉冲雷达导引头回波生成技术
python·算法·仿真·单脉冲雷达、