6주차 일요일 2 - LeetCode-Study-Team/solutions GitHub Wiki
268. Missing Number
Summary
Main Idea
- sum(1, n) 에서 input array 값을 모두 더한값을 빼주면 빠진 숫자를 알 수 있다. O(1) space and O(N) time
- sum(1, n) 을 수학적으로 구하는 법
- n x (n + 1) / 2
- https://adgw.tistory.com/entry/알고리즘-1-n까지-합을-구하는-원리
public class Solution {
public int missingNumber(int[] nums) {
int sum = 0;
for(int num: nums)
sum += num;
return (nums.length * (nums.length + 1) )/ 2 - sum;
}
}
public class Solution {
public int missingNumber(int[] nums) {
int result = 0;
for (int i = 1; i <= nums.length; i++) {
result += i-nums[i-1];
}
return result;
}
}
55. Jump Game
Summary
Main Idea
- 최대 어디까지 갈 수 있는지 max값을 지정해 두는게 중요하다
public static boolean canJump(int[] A) {
int max = 0; // 갈 수 있는 최대
for(int i = 0; i < A.length; i++){
if (i > max) { // 갈 수 있는 최대치로 현재위치에 올 수 없다면
return false;
}
max = Math.max(A[i] + i, max);
}
return true;
}