1. 两数之和
https://leetcode-cn.com/problems/two-sum/comments/
HashMap
-
Hash_Map.containsKey(key_element)
参数:该方法只接受一个参数key_element,该参数引用应在map内检查其映射的键。
返回值:如果检测到密钥的存在,则该方法返回布尔值true,否则返回false。 -
put写入
-
get取出
示例:
package leetcode_test;
import java.util.*;
public class leetcode {
public static void main(String[] args) {
// Creating an empty HashMap
HashMap<Integer, String> hash_map = new HashMap<Integer, String>();
// Mapping string values to int keys
hash_map.put(10, "Geeks");
hash_map.put(15, "4");
hash_map.put(20, "Geeks");
hash_map.put(25, "Welcomes");
hash_map.put(30, "You");
// Displaying the HashMap
System.out.println("Initial Mappings are: " + hash_map);
// Checking for the key_element '20'
System.out.println("Is the key '20' present? " + hash_map.containsKey(20));
System.out.println(" '20' value is : " + hash_map.get(20));
// Checking for the key_element '5'
System.out.println("Is the key '5' present? " + hash_map.containsKey(5));
}
}
返回结果:
Initial Mappings are: {20=Geeks, 25=Welcomes, 10=Geeks, 30=You, 15=4}
Is the key '20' present? true
'20' value is : Geeks
Is the key '5' present? false
代码
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] indexs = new int[2];
// 建立k-v ,一一对应的哈希表
HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>();
for(int i = 0; i < nums.length; i++){
if(hash.containsKey(nums[i])){
indexs[0] = i;
indexs[1] = hash.get(nums[i]);
return indexs;
}
// 将数据存入 key为补数 ,value为下标
hash.put(target-nums[i],i);
}
return indexs;
}
}
7. 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
代码
class Solution {
public int reverse(int x) {
long sum = 0;
while(x != 0)
{
sum = sum * 10 + x % 10;
x = x / 10;
if(sum > Integer.MAX_VALUE || sum < Integer.MIN_VALUE)
{
return 0;
}
}
return (int)sum;
}
}