topcode【随机算法题】【2026.5.15打卡-java版本】

394.字符串解码

示例 1:

复制代码
输入:s = "3[a]2[bc]"
输出:"aaabcbc"

要点:1.全局i, 2.识别character, 数字.isDigit(c), 【temp】

java 复制代码
class Solution {
    int i= 0;
    public String decodeString(String s) {
        StringBuilder ans = new StringBuilder();

        while(i < s.length() && s.charAt(i) != ']'){
            char c = s.charAt(i);

            if(Character.isDigit(c)){
                int k = 0;
                while(Character.isDigit(s.charAt(i))){
                    k = k*10 + s.charAt(i) - '0';
                    i++;
                }

                i++;

                String temp = decodeString(s);

                i++;

                while(k>0){
                    ans.append(temp);
                    k--;
                }
            }else{
                ans.append(c);
                i++;
            }

        }

        return ans.toString();


        
    }
}

470.用rand7()实现rand10()

要点:

//(randy - 1)*y + randy

//num-1 %10 +1

java 复制代码
/**
 * The rand7() API is already defined in the parent class SolBase.
 * public int rand7();
 * @return a random integer in the range 1 to 7
 */
class Solution extends SolBase {
    //(rand[y] - 1)*y + rand[y]
    //num-1 %10 +1
    public int rand10() {
        while(true){
            int a = rand7();
            int b = rand7();
            int num = (a - 1) * 7 + b;
            if(num <= 40){
                return (num -1) % 10 + 1;
            }
        }
        
    }
}

64.最小路径和

示例 1:

复制代码
输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
输出:7
解释:因为路径 1→3→1→1→1 的总和最小。

要点:二维dp

java 复制代码
class Solution {
    public int minPathSum(int[][] grid) {
        //二维dp,注意n,m


        int m = grid[0].length;
        int n = grid.length;

        int[][] dp = new int[n][m];


        dp[0][0] = grid[0][0];
        for(int i = 1; i < m; i++){
            dp[0][i] = grid[0][i] + dp[0][i-1];
        }

        for(int j = 1; j <n; j++){
            dp[j][0] =grid[j][0]  + dp[j-1][0];
        }

        for(int i = 1; i < n; i++){
            for(int j = 1; j < m; j++){
                dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];
            }
        }

        return dp[n-1][m-1];
        
    }
}

104.二叉树的最大深度

要点:队列

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        //队列
        //特别null要考虑到
        if(root == null){
            return 0;
        }
        Deque<TreeNode> queue = new LinkedList<>();

        queue.offer(root);
        int ceshu = 0;
        while(!queue.isEmpty()){
            int size = queue.size();
            for(int i = 0; i < size; i++){
                TreeNode temp = queue.poll();
                if(temp.left != null){
                queue.offer(temp.left);
                }
                if(temp.right != null){
                queue.offer(temp.right);
                }
            }
            ceshu++;
            
        }

        return ceshu;
        
    }
}

随机刷新知识

构建范式:七大主流设计模式

理解Agent的架构,本质上是理解它的"思考"与"执行"逻辑。以下是目前最主流的七种设计模式,它们各有侧重,适用于不同的任务场景。

范式 核心特点 优缺点 适用场景
ReAct (Reason + Act) 将"推理"和"行动"紧密结合,在一个循环中交替进行:思考→行动→观察→再思考... 优点 :高度灵活,适应性强,过程透明,决策可解释。 缺点:效率较低,耗时耗token,可能陷入局部最优。 需要与外部环境持续交互的动态任务,如知识密集型问答、网页浏览、复杂信息检索。
Plan & Execute 首先生成一个完整的全局计划,再按顺序执行各步骤,并可在执行过程中动态调整。 优点 :处理复杂任务时效率高,在规划阶段即可优化路径,避免ReAct的"短视"问题。 缺点:首步质量对整体结果影响巨大。 流程明确、步骤繁多的结构化任务,如自动化报告生成、项目编排、数据批量处理等。
Reflection (反思) 通过自我批评和迭代优化来持续提升输出质量,这一思想与你们图纸识别项目中用到的"自我批评"完全相同。 优点 :能显著提升最终输出质量,有效降低错误率。 缺点:耗时长,成本高,迭代过程可能引入新的偏差。 追求高质量、高准确性输出的任务,如代码生成、文案精修、专业文档审查。
ReWOO (Reason without Observation) 分离推理与观察过程,先规划好所有需要的工具调用,再一次性获取结果后汇总。 优点 :显著减少模型调用次数和Token消耗,大幅降低成本。 缺点:灵活性降低,一旦前期推理出错,后续步骤可能全部失效。 对成本敏感,且工具调用结果相对可预测的场景。
LLM Compiler 将复杂的任务描述分解成类似代码指令的并行可执行子任务,最大化执行效率。 优点 :执行效率极高,适合大规模并行计算。 缺点:实现复杂,对任务的可并行化要求高。 大型数据处理任务、多源信息同步处理、模拟仿真等计算密集型任务。
Basic Reflection 最简单的反思模式,通常由生成器与评判器两个基础模块构成一次优化循环。 优点 :流程简单,易于实现。 缺点:优化效果有限,未充分利用历史经验。 对任务质量要求中等,希望引入基本质检的场景。
LATS (Language Agent Tree Search) 结合蒙特卡洛树搜索算法,在任务空间中探索多条潜在路径,选择最优解。 优点 :决策质量极高,拥有全局视野。 缺点:复杂度最高,计算量和耗时巨大。 探索型、开放式任务,如破解谜题、产品设计、战略决策等。

碎碎念:后续会更新每天学习的八股和算法题,暑假实习找不到了,开始准备秋招的第天。努力连续更新100天!今天在测试一个agent,用coze生成然后本地改,发现效果一般哇,继续看看怎么改吧。加油加油,冲冲冲,一起都会好起来的。要多背八股了。

相关推荐
土司大王7 小时前
LeetCode hot100——对称二叉树
算法·leetcode·职场和发展
sali-tec8 小时前
C# 基于OpenCv的视觉工作流-章106-差值追踪
图像处理·人工智能·opencv·算法·计算机视觉
Navigator_Z8 小时前
LeetCode //C - 1208. Get Equal Substrings Within Budget
c语言·算法·leetcode
手写码匠8 小时前
Dify 多 Agent 工具权限与安全沙箱实战:让智能体“有能力,但不越权“
人工智能·深度学习·算法·aigc
黎阳之光8 小时前
打破堆场感知黑盒:黎阳之光视频孪生,构建港口码头网格化透明管控新体系
大数据·人工智能·算法·安全·数字孪生
丘山一郎8 小时前
Spring 中的IOC控制反转 和DI依赖注入
java·后端·spring
码视野8 小时前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
MetaLite9 小时前
Spring-AOP自调用为什么失效-AopContext真能解决吗
java·后端·spring
大模型码小白9 小时前
AI 对话流性能调优:万级消息的虚拟滚动落地
java·大数据·前端·javascript·人工智能·算法·机器学习
许彰午9 小时前
14-字段级SM4加密与SM2签名
java·低代码·架构