基础算法集训第06天:计数排序

目录

[75. 颜色分类 - 力扣(LeetCode)](#75. 颜色分类 - 力扣(LeetCode))

[1046. 最后一块石头的重量 - 力扣(LeetCode)](#1046. 最后一块石头的重量 - 力扣(LeetCode))

[1984. 学生分数的最小差值 - 力扣(LeetCode)](#1984. 学生分数的最小差值 - 力扣(LeetCode))

[389. 找不同 - 力扣(LeetCode)](#389. 找不同 - 力扣(LeetCode))

[2733. 既不是最小值也不是最大值 - 力扣(LeetCode)](#2733. 既不是最小值也不是最大值 - 力扣(LeetCode))


75. 颜色分类 - 力扣(LeetCode)

cpp 复制代码
class Solution {
public:
    void sortColors(vector<int>& nums) {
        int p0=0;
        int p1=0;
        for(int i=0;i<nums.size();i++){
            if(nums[i]==1){
                swap(nums[i],nums[p1++]);
            }
            else if(nums[i]==0){
                swap(nums[i],nums[p0]);
                if(p0<p1){
                    swap(nums[i],nums[p1]);
                }
                p1++;
                p0++;
            }
        }
    }
};

1046. 最后一块石头的重量 - 力扣(LeetCode)

cpp 复制代码
class Solution {
public:
    int lastStoneWeight(vector<int>& stones) {
        priority_queue<int> p;
        for(int i=0;i<stones.size();i++){
            p.push(stones[i]);
        }
        while(p.size()>1){
            int a=p.top();
            p.pop();
            int b=p.top();
            p.pop();
            if(a!=b){
                p.push(a-b);
            }
        }
        if(p.size()==0){
            return 0;
        }
        else {
            return p.top();
        }
    }
};

1984. 学生分数的最小差值 - 力扣(LeetCode)

cpp 复制代码
class Solution {
public:
    int minimumDifference(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int MIN = INT_MAX;
        for (int i = 0; i < nums.size() - k + 1; i++) {
            MIN = min(MIN, nums[k + i - 1] - nums[i]);
        }
        return MIN;
    }
};

389. 找不同 - 力扣(LeetCode)

cpp 复制代码
class Solution {
public:
    char findTheDifference(string s, string t) {
        int res=0;
        for(int i=0;i<s.size();i++){
            int k=s[i]-'a';
            res^=k;
        }
        for(int i=0;i<t.size();i++){
            int k=t[i]-'a';
            res^=k;
        }
        char n=res+'a';
        return n;
    }
};

2733. 既不是最小值也不是最大值 - 力扣(LeetCode)

cpp 复制代码
class Solution {
public:
    int findNonMinOrMax(vector<int>& nums) {
        if(nums.size()<=2)return -1;
        int MIN=nums[0];
        int MAX=nums[0];
        for(int i=0;i<nums.size();i++){
            MIN=min(MIN,nums[i]);
            MAX=max(MAX,nums[i]);
        }
        for(int i=0;i<nums.size();i++){
            if(nums[i]!=MIN&&nums[i]!=MAX){
                return nums[i];
            }
        }
        return -1;
    }
};
相关推荐
xiaoye-duck6 分钟前
《算法题讲解指南:优选算法-队列+宽搜》--70.N叉树的层序遍历,71.二叉树的锯齿形层序遍历,72.二叉树的最大宽度,73.在每个树行中找最大值
数据结构·c++·算法·队列
汀、人工智能8 分钟前
[特殊字符] 第98课:数据流中位数
数据结构·算法·数据库架构··数据流·数据流中位数
Eloudy11 分钟前
不同特征值的特征向量互相正交的矩阵
人工智能·算法·机器学习
人道领域13 分钟前
【LeetCode刷题日记】:从 LeetCode 经典题看哈希表的场景化应用---数组、HashSet、HashMap 选型与算法实战
算法·leetcode·面试
努力努力再努力wz13 分钟前
【C++高阶系列】告别内查找局限:基于磁盘 I/O 视角的 B 树深度剖析与 C++ 泛型实现!(附B树实现源码)
java·linux·开发语言·数据结构·c++·b树·算法
承渊政道14 分钟前
【优选算法】(实战攻坚BFS之FloodFill、最短路径问题、多源BFS以及解决拓扑排序)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
kishu_iOS&AI16 分钟前
机器学习 —— 线性回归(2)
人工智能·python·算法·机器学习·线性回归
NULL指向我19 分钟前
信号处理学习笔记6:ADC采样线性处理实测拟合
人工智能·算法·机器学习
汽车仪器仪表相关领域21 分钟前
NHXJ-02汽车悬架检验台 实操型实战手册
人工智能·功能测试·测试工具·算法·安全·单元测试·可用性测试
源码之屋23 分钟前
计算机毕业设计:Python天气数据采集与可视化分析平台 Django框架 线性回归 数据分析 大数据 机器学习 大模型 气象数据(建议收藏)✅
人工智能·python·深度学习·算法·django·线性回归·课程设计