Java算法模板

合并区间

统计不同区间的元素个数

java 复制代码
         //合并区间
        List<Integer> result = new ArrayList<>();
        int start = intervals.get(0)[0];
        int end   = intervals.get(0)[1];

        for(int i=1;i<intervals.size();i++){
            int[] curr = intervals.get(i);
            if(curr[0]>end){
                //不能合并,存放结果
                result.add(end-start+1);
                start = curr[0];
                end = curr[1];

            }else{
                end = Math.max(end,curr[1]);
            }
        }
        // 添加最后一个字段
        result.add(end-start+1);

统计每个字母出现的最后下表

java 复制代码
int[] last = new int[26]; // 记录每个字母最后出现的下标
for (int i = 0; i < n; i++) {
    last[s[i] - 'a'] = i;
}

贪心算法

贪心算法 是一种 在每一步都选择当前最优解(局部最优解) ,从而 期望最终能得到全局最优解 的算法策略。

列表 List

nums.add(List.of(1)); 可以用,但元素不可修改

nums.add(new ArrayList<>(List.of(1))); 推荐用于可变列表

相关推荐
别来无恙✲9 分钟前
Mybatis源码分析
java·源码分析
Biomamba生信基地13 分钟前
R语言入门课| 04 R语言基本函数
开发语言·r语言·生信
山河君14 分钟前
音频进阶学习二十四——IIR滤波器设计方法
学习·算法·音视频·信号处理
学习是种信仰啊15 分钟前
QT图片轮播器实现方法二(QT实操2)
开发语言·c++·qt
68岁扶墙肾透18 分钟前
Java安全-FastJson反序列化分析
java·安全·web安全·网络安全·网络攻击模型·安全架构·fastjson
疾风铸境18 分钟前
Qt5.14.2+Cmake使用mingw64位编译opencv4.5成功图文教程
开发语言·qt
DeafReady27 分钟前
Python的概论
开发语言·python
魔云连洲30 分钟前
Vue2和Vue3响应式的基本实现
开发语言·前端·javascript·vue.js
半部论语1 小时前
SpringMVC 中的DispatcherServlet生命周期是否受Spring IOC 容器管理
java·后端·spring
froginwe111 小时前
CSS 列表:实现网页布局的艺术
开发语言