贪心+线程安全单例

  1. 贪心算法:738.单调递增的数字

    cpp 复制代码
    class Solution {
    public:
        int monotoneIncreasingDigits(int n) {
            string s = to_string(n);
            int flag = s.size();
            for(int i = s.size() - 1; i > 0; i -- ) {
                if(s[i] < s[i - 1]) {
                    flag = i;
                    s[i - 1] --;
                }
            }
            for(int i = flag; i < s.size(); i++ ) {
                s[i] = '9';
            }
            return stoi(s);
        }
    };

    前一个数字 > 当前数字,说明单调性被破坏,需要把前一个数字 减 1,并把它后面的所有数字变为 '9'

  2. 贪心算法:763.划分字母区间

    cpp 复制代码
    class Solution {
    public:
        vector<int> partitionLabels(string s) {
            int hash[26] = {0};
            vector<int>result;
            int left = 0;
            int right = 0;
            for(int i = 0 ; i < s.size(); i ++ ) {
                hash[s[i] - 'a'] = i;  
            }
            for(int i = 0; i < s.size() ; i++ ) {
                right = max(right, hash[s[i] - 'a']);
                if(i == right) {
                    result.push_back(right - left + 1);
                    left = i + 1;
                }
            }
            return result;
        }
    };

    用个hash表保存

  3. 贪心算法:56.合并区间

    cpp 复制代码
    class Solution {
    public:
        static bool cmp(vector<int>& a, vector<int>& b) {
            return a[0] < b[0];
        }
        vector<vector<int>> merge(vector<vector<int>>& intervals) {
            sort(intervals.begin(),intervals.end(),cmp);
            vector<vector<int>>result;
            result.push_back(intervals[0]);
            for(int i = 1 ; i < intervals.size(); i ++ ) {
                if(result.back()[1] >= intervals[i][0]) {
                    result.back()[1] = max(result.back()[1],intervals[i][1]);
                }else {
                    result.push_back(intervals[i]);
                }
            }
            return result;
        }
    };

    先把第一个存入,再依次比较。

  4. 线程安全的单例

    cpp 复制代码
    class singleton {
        public:
        static singleton &getinstance() {
            static singleton instance;
            return instance;
        }
        singleton (const singleton &) = delete;
        singleton& operator= (const singleton&) = delete;
        private:
        singleton() {
    
        }
        ~singleton() {
    
        }
    };
    
    int main() {
        singleton& pinstance = singleton::getinstance();
    }
相关推荐
hetao17338374 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
Zootopia6265 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
longlongzihan5 小时前
从LeetCode 70. 爬楼梯看动态规划:如何精准推导状态转移方程?
c++·算法·leetcode·动态规划
2601_960356386 小时前
2027校招采购岗解析:数学基础如何迁移到需求预测、成本与供应商分析
人工智能·算法
h_a_o777oah7 小时前
【树论】树链剖分:将树形结构转化为线性结构以处理树上路径问题(洛谷 P3384 附C++代码模板)
数据结构·算法·线段树·acm·树链剖分·树论·重链剖分
HEJOO97 小时前
指针的算术运算详解
java·数据结构·算法
Coder-magician7 小时前
《代码随想录》刷题打卡day47:并查集-part01
数据结构·算法·图论
垆边人似月.7 小时前
VLAN 资源池(100~200 分档)
数据结构·算法
潼心1412o8 小时前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法
星光开发者8 小时前
基于决策树随机森林算法的小说推荐系统的设计与实现-计算机毕设【课程设计】78485
vue.js·算法·微信小程序·django·php·课程设计·express