[Leetcode]1679. Max Number of K-Sum Pairs(x)
2024. 7. 30. 11:16ㆍjava/javaAlgorithm
1. problem :
https://leetcode.com/problems/max-number-of-k-sum-pairs/?envType=study-plan-v2&envId=leetcode-75
2. solution 1 :
public class Solution {
public int maxOperations(int[] nums,int k) {
int count = 0;
HashMap<Integer, Integer> hashMap = new HashMap<>();
for (int num : nums) {
int target = k - num;
if (hashMap.getOrDefault(target, 0) > 0) {
count++;
hashMap.put(target, hashMap.get(target) - 1);
} else {
hashMap.put(num,hashMap.getOrDefault(num,0)+1);
}
}
return count;
}
쓰인다면, target이라는 key의 value값 -1 (물론 0보다 크다는 전제하에)
안 쓰인다면, num이라는 key를 새로 생성하거나 기존의 value에 +1
3. solution 2 :
class Solution {
public int maxOperations(int[] nums, int k) {
Arrays.sort(nums);
int n = nums.length;
int maxOps = 0;
int si = 0;
int ei = n-1;
while(si < ei) {
int sum = nums[si] + nums[ei];
if(sum == k) {
maxOps++;
si++;
ei--;
} else if(sum > k) {
ei--;
} else {
si++;
}
}
return maxOps;
}
}
일단, array를 sort 한 다음, 값이 같다면 start_index, end_index를 안쪽으로 당겨주고,
sum이 크다면, 큰 값만 안쪽으로 당기기.
sum이 작다면, 작은 값을 안쪽으로 당기기.
'java > javaAlgorithm' 카테고리의 다른 글
[Leetcode]217. Contains Duplicate (0) | 2024.07.30 |
---|---|
[Leetcode]3146. Permutation Difference between Two Strings (0) | 2024.07.30 |
[Leetcode]1111. Maximum Nesting Depth of Two Valid(x) (0) | 2024.07.30 |
[Leetcode]11. Container With Most Water (0) | 2024.07.29 |
[Leetcode]654. Maximum Binary Tree (0) | 2024.07.29 |