1. 出现次数最多的字符并计算次数
给定一个字符串“today is a special day”,长度任意,要求找出其出现次数最多的字符及计算次数。
出处:
https://edu.csdn.net/practice/23349751
代码:
import java.util.HashMap; import java.util.Map; class Solution { public static void main(String[] args) { String string = "Thinking in Java"; char[] ch = string.toCharArray(); Map<Character, Integer> result = new HashMap<Character, Integer>(); for (int i = 0; i < ch.length; i++) { if (result.containsKey(ch[i])) { int count = result.get(ch[i]) + 1; result.put(ch[i], count); } else { result.put(ch[i], 1); } } Character maxChar = null; Integer maxCount = 0; for (java.util.Map.Entry<Character, Integer> entry : result.entrySet()) { if (entry.getValue() > maxCount) { maxChar = entry.getKey(); maxCount = entry.getValue(); } } System.out.println("字符: " + maxChar + " 出现的字数最多,为 " + maxCount + " 次"); } }
2. 最后一个单词的长度
给你一个字符串 s
,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " "
输出:0
提示:
1 <= s.length <= 10^4
s 仅有英文字母和空格 ' ' 组成
出处:
https://edu.csdn.net/practice/23349752
代码:
class Solution { public int lengthOfLastWord(String s) { int count = 0; for (int i = s.length() - 1; i >= 0; i--) { if (s.charAt(i) != ' ') { count++; } else if (count > 0) { return count; } } return count; } }
class Solution { public int lengthOfLastWord(String s) { int count = 0; for (int i = s.length() - 1; i >= 0; i--) { if (s.charAt(i) != ' ') { count++; } else if (count > 0) { return count; } } return count; } }
3. 两数之和
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6
输出:[0,1]
提示:
2 <= nums.length <= 10^3
-10^9 <= nums[i] <= 10^9
-10^9 <= target <= 10^9
只会存在一个有效答案
出处:
https://edu.csdn.net/practice/23349753
代码:
class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> cache = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int distance = target - nums[i]; if (cache.containsKey(distance)) { return new int[] { cache.get(distance), i }; } else { cache.put(nums[i], i); } } return new int[] {}; } }
class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> cache = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int distance = target - nums[i]; if (cache.containsKey(distance)) { return new int[] { cache.get(distance), i }; } else { cache.put(nums[i], i); } } return new int[] {}; } } ———————————————— 版权声明:本文为CSDN博主「Hann Yang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/boysoft2002/article/details/129675088