【1】两数之和
public class TwoNumAddiction {public static void main(String[] args) {int[] nums = {3,3};int target = 6;int[] indexArr = new SolutionNumAddiction().twoSum(nums, target);for (int index : indexArr) {System.out.println(index);}}
}class SolutionNumAddiction {public int[] twoSum(int[] nums, int target) {List<Integer> numsList = Arrays.stream(nums).boxed().collect(Collectors.toList());for (int i = 0; i < numsList.size(); i++) {Integer now = target - numsList.get(i);int index1 = numsList.lastIndexOf(now);if (index1 != -1 && index1 != i) {int[] indexArr = {i, index1};return indexArr;}}return null;}
}
【49】字母异位词分组
public class ZiMuYiWeiCi {public static void main(String[] args) {String[] strs = {"a"};List<List<String>> res = new ZiMuYiWeiCiSolution().groupAnagrams(strs);System.out.println(res);}
}
class ZiMuYiWeiCiSolution {public List<List<String>> groupAnagrams(String[] strs) {//使用了HashMap来存储排序后的字符串(键)和它们对应的原始字符串列表(值)HashMap<String, List<String>> map = new HashMap<>();for (String str : strs) {char[] chars = str.toCharArray();Arrays.sort(chars);String sortedStr = new String(chars);if (map.containsKey(sortedStr)){List list = map.get(sortedStr);list.add(str);}else {List<String> strList = new ArrayList<>();strList.add(str);map.put(sortedStr, strList);}}return new ArrayList<>(map.values());}
}