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))); 推荐用于可变列表

相关推荐
董董灿是个攻城狮21 分钟前
AI视觉连载8:传统 CV 之边缘检测
算法
怒放吧德德2 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆4 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌6 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊7 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang7 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
AI软著研究员7 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish8 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
Ray Liang9 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
颜酱9 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法