[Java 算法] 模拟

练习一 : 替换所有的问号

1576. 替换所有的问号 - 力扣(LeetCode)

class Solution { public String modifyString(String s) { char[] ch = s.toCharArray(); for(int i = 0;i<ch.length;i++){ if(ch[i] == '?'){ for(char tmp = 'a';tmp<='z';tmp++){ if((i == 0||tmp!=ch[i-1])&&(i ==ch.length-1||tmp!=ch[i+1])){ ch[i] = tmp; break; } } } } return String.valueOf(ch); } }

练习二 : 提莫攻击

495. 提莫攻击 - 力扣(LeetCode)

class Solution { public int findPoisonedDuration(int[] nums, int duration) { int ret = 0; for(int i = 0;i<nums.length;i++){ if((i == nums.length-1)||(nums[i+1]-nums[i]>=duration)){ ret+=duration; }else{ ret+=nums[i+1]-nums[i]; } } return ret; } }

练习三 : Z 字形变换

6. Z 字形变换 - 力扣(LeetCode)

class Solution { public String convert(String s, int numRows) { char[] ch = s.toCharArray(); if(numRows == 1||s.length()<=numRows){ return s; } StringBuilder sb = new StringBuilder(); int d = 2*numRows-2; for(int i = 0;i<numRows;i++){ ; int k = 0; while(i+k*d<ch.length){ if(i == 0||i == numRows-1){ sb.append(ch[i+k*d]); }else{ sb.append(ch[i+k*d]); if((d-i+k*d)<s.length()){ sb.append(ch[d-i+k*d]); } } k++; } } return sb.toString(); } }

图解 :

算法原理 :

  1. 如果行数位 1 , 或者字符串长度小于等于行数 , 则直接返回字符串
  2. 模拟以上图解 :

第 0 行和最后一行 : 在行数的基础上每个周期 , 加上一个公差(d = 2n-2)

其余行 : 两个元素为一组 , 每个周期加上一个公差 , 例如 第 i 行 , 周期为 0 , 两个元素的下标表示为 : (i , d-i) ; (其中 d 为公差)

细节问题 :

① 周期次数放在 if-else 判断外 , 以免产生死循环

② String 类型为不可变类型 , 使用时需要配合 StringBuilder 和 char[] 类型来使用

练习四 : 外观数列

38. 外观数列 - 力扣(LeetCode)

class Solution { public String countAndSay(int n) { // 初始值:n=1时结果为"1" String s = "1"; // 核心:只需要循环n-1次(因为初始已经是n=1的结果) for (int i = 2; i <= n; i++) { char[] ch = s.toCharArray(); StringBuilder sb = new StringBuilder(); int left = 0, right = 0; // 双指针统计连续相同字符 while (right < ch.length) { if (ch[left] == ch[right]) { right++; } else { // 统计数量 + 拼接字符 sb.append(right - left).append(ch[left]); left = right; } } // 处理最后一组连续字符(循环结束后left未到末尾) sb.append(right - left).append(ch[left]); // 更新s为当前轮的结果,供下一轮描述 s = sb.toString(); } return s; } }

Read more

开源杀疯了!Qwen3.5 Plus + OpenClaw,性能对标GPT-5.2还免费商用

开源杀疯了!Qwen3.5 Plus + OpenClaw,性能对标GPT-5.2还免费商用

文章目录 * 一、先唠明白:Qwen3.5 Plus到底是什么来头 * 二、OpenClaw:给大模型装个「万能插件底座」 * 三、实测对比:凭什么说对标GPT-5.2? * 四、零门槛上手:5行代码调用Qwen3.5 Plus * 五、OpenClaw集成:让大模型更听话、更能打 * 六、本地部署方案:离线也能用,隐私拉满 * 七、商用无忧:开源授权+免费额度全解析 * 八、常见问题踩坑指南 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.ZEEKLOG.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,

By Ne0inhk
解锁超级生产力:手把手教你构建与GitHub深度集成的自动化工作流,让AI成为你的编程副驾驶

解锁超级生产力:手把手教你构建与GitHub深度集成的自动化工作流,让AI成为你的编程副驾驶

前言 在当今快节奏的软件开发世界中,效率就是生命线。每一位开发者、项目经理和技术爱好者都在不断寻求能够简化流程、自动化重复性任务并最终解放创造力的工具和方法。想象一下,如果你能用自然语言与你的开发环境对话,让它为你搜索代码库、管理项目任务,甚至直接在你最喜欢的代码托管平台GitHub上执行操作,那将会是怎样一种颠覆性的体验? 这并非遥不可及的科幻场景,而是已经可以实现的强大功能。本文将为你揭开这层神秘的面纱,通过一个名为“蓝耘”的平台(或任何支持此类功能的类似平台),一步步指导你从零开始构建一个基础的自动化工作流。更令人兴奋的是,我们将向你展示如何将这个工作流与强大的GitHub MCP(Multi-Capability Platform)工具无缝集成,从而赋予你的工作流直接与GitHub仓库进行深度交互的能力。 无论你是希望快速检索海量开源项目、自动追踪和创建任务(Issues),还是希望简化代码提交与拉取请求(Pull Request)的流程,本文都将为你提供详尽的、可操作的指南。我们将深入每一个步骤,从最基础的节点设置,到获取关键的GitHub密钥,再到最终实战演练,让你亲

By Ne0inhk
今日AI榜单速览(GitHub Trending AI Top3)

今日AI榜单速览(GitHub Trending AI Top3)

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 今日AI热榜 * 1 1 今日榜单速览(GitHub Trending AI Top3) * 2 2 ruvnet / RuView:WiFi DensePose 的“无线透视”路线 * 2 我的一句话总结 * 2 为什么今天它能冲到第一? * 2 图:它的可视化界面长这样(很直观) * 2 我如何最快验证(不折腾工具链) * 3 3 K-Dense-AI / claude-scientific-skills:给

By Ne0inhk