代码随想录 | Day6-2 | LC 01两数之和、242. 有效的字母异位词
1. 两数之和
解法1,利用HashMap(map.get(Key))实现数的存储和输出
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map = new HashMap<>();
int[] ints = new int[2];
for (int i = 0; i < nums.length; i++) {
int goal_num=target-nums[i];
if (map.containsKey(goal_num)){
ints[0]=i;
ints[1]=map.get(goal_num);
break;
}
map.put(nums[i],i);
}
return ints;
}
}
思路
-
是对于hashmap的利用,即利用其key和value的特性,达到二维数组的存储效果,存储两个数值
-
是哈希表的优势就在于O(1)的查找,利用map.get(Key)函数,可以直接实现目标数的查找
-
就是对于题意的理解,寻找两数之和翻译过后的意思其实是寻找目标值target作差后值的数字
即int goal_num=target-nums[i];
参考资料
ACM 选手图解 LeetCode 两数之和 | 编程文青李狗蛋
解法2:暴力解法
思路:两层,外层取遍历nums[i],内层遍历nums[i+1],再一个if,直接解决……(够无脑哈哈……)
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] ints = new int[2];
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
ints[0] = i;
ints[1] = j;
break;
}
}
}
return ints;
}
}
242. 有效的字母异位词
解法1: 利用哈希映射将存储元素进行比较
class Solution {
public boolean isAnagram(String s, String t) {
int[] record = new int[26];
if (s.length()!=t.length()){
return false;
} //basecase
for (int i = 0; i <s.length() ; i++) {
char c = s.charAt(i);//String转char
record[c-'a']++;//char转int
}
for (int i = 0; i <t.length() ; i++) {
char c = t.charAt(i);
record[c-'a']--;
}
for (Integer i : record) {
if (i!=0){
return false;
}
}
return true;
}
}
解法2:排序,然后直接遍历
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length()!=t.length()){
return false;
}
char[] char_s = s.toCharArray();
char[] char_t = t.toCharArray();
Arrays.sort(char_s);
Arrays.sort(char_t);
int for_length=Math.min(s.length(),t.length());
for (int i = 0; i <for_length; i++) {
if (char_s[i]!=char_t[i]){
return false;
}
}
return true;
}
}
思路:
资料:
[我自己的草稿](https://flowus.cn/share/22429806-7be9-4834-94e3-2f182d2d87d7
【FlowUs 息流】Untitled (Draft).pdf)
Test1
test2
test3
NBV~0){8C.jpg)
NBV~0){8C.jpg)
https://flowus.cn/share/dcbbbdb5-fac4-4948-9ecb-e3a836e3d081
计划本
标签:target,nums,int,char,length,ints,tss From: https://www.cnblogs.com/szwsama/p/17065995.html