编辑
2024-05-07
算法题
00
请注意,本文编写于 368 天前,最后修改于 368 天前,其中某些信息可能已经过时。

记录一些简单题,但是可以用java里面一些API来解题很优雅

image.png

java
class Solution { public double average(int[] salary) { double sum = Arrays.stream(salary).sum(); int min = Arrays.stream(salary).min().getAsInt(); int max = Arrays.stream(salary).max().getAsInt(); return (sum - min - max) / (salary.length - 2); } }

优雅,自己对这些还不熟悉,一定要学会!

image.png

java
class Solution { public String countAndSay(int n) { String result = "1"; // 初始化结果为第一项 for (int i = 2; i <= n; i++) { StringBuilder sb = new StringBuilder(); int count = 1; // 计数器,初始化为1 // 遍历前一项的描述字符串 for (int j = 1; j < result.length(); j++) { // 如果当前字符与前一个字符相同,增加计数器 if (result.charAt(j) == result.charAt(j - 1)) { count++; } else { // 如果当前字符与前一个字符不同,将计数器和字符添加到结果字符串中 sb.append(count).append(result.charAt(j - 1)); // 重置计数器 count = 1; } } // 添加最后一个字符的计数和字符 sb.append(count).append(result.charAt(result.length() - 1)); result = sb.toString(); // 更新结果字符串 } return result; } } 递归 class Solution { public String countAndSay(int n) { // 递归终止条件 if (n == 1) { return "1"; } // 递归调用,获取前一项的描述 String prev = countAndSay(n - 1); StringBuilder sb = new StringBuilder(); int count = 1; // 计数器,初始化为1 // 遍历前一项的描述字符串 for (int i = 1; i < prev.length(); i++) { // 如果当前字符与前一个字符相同,增加计数器 if (prev.charAt(i) == prev.charAt(i - 1)) { count++; } else { // 如果当前字符与前一个字符不同,将计数器和字符添加到结果字符串中 sb.append(count).append(prev.charAt(i - 1)); // 重置计数器 count = 1; } } // 添加最后一个字符的计数和字符 sb.append(count).append(prev.charAt(prev.length() - 1)); return sb.toString(); } }

image.png

java
class Solution { public List<String> summaryRanges(int[] nums) { List<String> result = new ArrayList<>(); if (nums == null || nums.length == 0) { return result; } int start = nums[0]; for (int i = 1; i <= nums.length; i++) { // 如果当前数字与前一个数字不连续,或者已经到达数组末尾 if (i == nums.length || nums[i] != nums[i - 1] + 1) { // 如果区间范围只有一个数字,直接添加该数字 if (start == nums[i - 1]) { result.add(String.valueOf(start)); } else { // 否则添加区间范围 result.add(start + "->" + nums[i - 1]); } // 更新区间范围的起始点 if (i < nums.length) { start = nums[i]; } } } return result; } }

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!