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

相关推荐
老白干35 分钟前
jjwt 0.9.1 在 JDK 11+ 上的两个“坑”与完整解决方案
java·python·log4j
aaaameliaaa7 小时前
字符函数和字符串函数
c语言·笔记·算法
圆山猫7 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
微学AI8 小时前
一根针指向所有方向:挂谷猜想对 LLM Agent 技能-记忆架构的启示
开发语言·人工智能·架构·挂谷猜想
城管不管8 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨8 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
月疯8 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡8 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯8 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
萧瑟余晖8 小时前
Java深入解析篇九之NIO详解
java·网络·nio