Arithmetic
算法实战总结
纳兰青华
一个专注于写程序的疯子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
给定一个二维数组matrix,可以从任何位置出发,走向上下左右四个方向,返回能走出来的最大长递增链长度。
摘要 本文介绍了三种求解矩阵中最长递增路径的方法:1) DFS+记忆化搜索,通过深度优先遍历和缓存结果优化性能;2) 拓扑排序,将矩阵视为有向图进行层次遍历;3) 动态规划,按值排序后递推计算。三种方法的时间复杂度均为O(mn),其中DFS+记忆化搜索最为简洁高效,能够避免重复计算并快速找到最长路径。该问题可应用于路径规划、图像处理等场景。原创 2025-09-28 17:46:15 · 174 阅读 · 0 评论 -
每日算法之:一个数组中只有两种字符‘G‘和‘B‘,可以让所有G都放在左侧,所有B都放在右侧 或者让所有G都放在右侧,所有B都放在左侧,但只能在相邻字符之间进行交换操作,返回至少需要交换几次?
一个数组中只有两种字符'G'和'B',可以让所有的G都放在左侧,所有的B都放在右侧 或者可以让所有的G都放在右侧,所有的B都放在左侧,但是只能在相邻字符之间进行交换操作,返回至少需要交换几次原创 2025-09-12 01:31:52 · 271 阅读 · 0 评论 -
每日算法之:给定一个文件目录的路径,写一个函数统计这个目录下所有的文件数量并返回,隐藏文件也算,但是文件夹不算
给定一个文件目录的路径,写一个函数统计这个目录下所有的文件数量并返回,隐藏文件也算,但是文件夹不算原创 2025-09-11 00:18:19 · 194 阅读 · 0 评论 -
每日算法之:给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度,返回绳子最多压中几个点? 即使绳子边缘处盖住点也算盖住
给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度,返回绳子最多压中几个点? 即使绳子边缘处盖住点也算盖住原创 2025-09-10 16:28:33 · 189 阅读 · 0 评论 -
统计给定字母在字符串中出现的次数
统计给定字母在字符串中出现的次数 例:“I love java very much” 方案一 public int letterOfCount(String str , char letter){ int count = 0; //记录找到的个数 for(int i = 0; i < str.length(); i++){ if(str.charAt(i) == letter){ count++; } } return count; } 方案二 public int原创 2020-10-16 22:38:01 · 651 阅读 · 0 评论 -
将给定字符串每一个首字母大写
将给定字符串每一个首字母大写 例:“this is a lesson about java” --> “This Is A Lesson About Java” public String firstLetterToUpperCase(String str){ String result = ""; //用于接收最终拼接完整的字符串 //将完整的字符串按照空格拆分 String[] value = str.split(" "); //循环处理每一个单词 截取首字母变大写 截取其余字母 整原创 2020-10-16 23:02:55 · 864 阅读 · 2 评论 -
将给定字符串位移X位
将给定字符串右位移x位置 例如: helloworld 右位移两位 ldhellowor //传一个字符串 和 位移位数 public String moveToRight(String str , int count){ if(count < 0){ System.out.println("您给定的位移个数不合理"); } if(count > str.length()){ count %= str.length(); //防止重复移 } //截取前半部分 /原创 2020-10-16 12:01:54 · 258 阅读 · 0 评论 -
字符串反转方法
将字符串反转 方案一 public String reverse(String str){ //将str变化为数组 char[] value = str.toCharArray(); //数组头尾互换 for(int i = 0; i < value.length/2; i++){ //使用异或交换数值(异或方法同样适用于字符) ch[i] = (char) (ch[i] ^ ch[str.length()-1-i]); c原创 2020-10-16 11:18:38 · 263 阅读 · 0 评论
分享