class Solution {
public int[] twoSum(int[] nums, int target) {
int[] res = new int[2];
for (int i=0;i<nums.length;i++){
res[0] = i;
res[1] = find(nums,target-nums[i],i);
if (res[1] == -1){
continue;
}
return res;
}
return res;
}
public int find(int[] nums, int target, int j){
for (int i=0;i<nums.length&&i!=j;i++){
if (nums[i]==target){
return i;
}
}
return -1;
}
}
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
//构建一个键值对,key代表异位词的字母排序【相同的】
//value代表异位词的集合List<Stirng>
for (String str : strs){
//遍历字符串数组
char[] ch = str.toCharArray();
Arrays.sort(ch);
//排序单词,得到相应的key
String key = String.valueOf(ch);
// String key = new String(ch);
//构建key的value
List<String> list = map.getOrDefault(key,new ArrayList<String>());
list.add(str); //value加入符合条件的字符串
map.put(key,list);//放入key-value键值对
}
return new ArrayList<List<String>>(map.values());//根据所有的value返回结果集
}
}
class Solution {
public int longestConsecutive(int[] nums) {
if (nums.length<=1) return nums.length;
int[] dp = new int[nums.length];
Arrays.fill(dp,1);
int result = 0;
Arrays.sort(nums);
for(int i=1;i<nums.length;i++){
if (nums[i]-nums[i-1]==1){
dp[i] = Math.max(dp[i],dp[i-1]+1);
result = Math.max(result,dp[i]);
}else if (nums[i]==nums[i-1]){
dp[i] = dp[i-1];
result = Math.max(result,dp[i]);
continue;
}
}
return result;
}
}