力扣算法学习day05-2
18-四数之和
题目
![image-20220125161051532](https://i-blog.csdnimg.cn/blog_migrate/27085e4cb61eb41026743d293da50c74.png)
![image-20220125161105879](https://i-blog.csdnimg.cn/blog_migrate/06b4e3bcfeb442452401f1b5534d7e9c.png)
代码实现
class Solution {
public List<List<Integer>> fourSum(int[] nums, int target) {
List<List<Integer>> result = new ArrayList<>();
Arrays.sort(nums);
for(int i = 0;i < nums.length - 3;i++){
if(i > 0 && nums[i] == nums[i - 1]){
continue;
}
for(int j = i + 1;j < nums.length - 2;j++){
if(j > i + 1 && nums[j] == nums[j - 1]){
continue;
}
int left = j + 1;
int right = nums.length - 1;
while(right > left){
int sum = nums[i] + nums[j] + nums[left] + nums[right];
if(sum < target){
left++;
} else if(sum > target){
right--;
} else{
List<Integer> temp = new ArrayList<>();
temp.add(nums[i]);
temp.add(nums[j]);
temp.add(nums[left]);
temp.add(nums[right]);
result.add(temp);
while(right > left && nums[left] == nums[left + 1]){
left++;
}
while(right > left && nums[right] == nums[right - 1]){
right--;
}
left++;
right--;
}
}
}
}
return result;
}
}
344-反转字符串
题目
![image-20220125163835258](https://i-blog.csdnimg.cn/blog_migrate/687b8221465859c244993443789df8b9.png)
代码实现
class Solution {
public void reverseString(char[] s) {
int left = 0;
int right = s.length - 1;
char temp = 'a';
while(left < right){
temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
}
}