티스토리 뷰
Problem
Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array.
Example 1:
Input: nums = [3,0,1]
Output: 2
Explanation: n = 3 since there are 3 numbers, so all numbers are in the range [0,3]. 2 is the missing number in the range since it does not appear in nums.
Example 2:
Input: nums = [0,1]
Output: 2
Explanation: n = 2 since there are 2 numbers, so all numbers are in the range [0,2]. 2 is the missing number in the range since it does not appear in nums.
Example 3:
Input: nums = [9,6,4,2,3,5,7,0,1]
Output: 8
Explanation: n = 9 since there are 9 numbers, so all numbers are in the range [0,9]. 8 is the missing number in the range since it does not appear in nums.
Constraints:
- n == nums.length
- 1 <= n <= 10^4
- 0 <= nums[i] <= n
- All the numbers of nums are unique.
Follow up: Could you implement a solution using only O(1) extra space complexity and O(n) runtime complexity?
Solution
n개의 숫자로 이루어진 배열이 주어질 때 0부터 n까지 범위 중 빠진 숫자를 구하는 문제입니다.
너무 간단한 문제라 여러 가지 방법이 있을 수 있는데 저는 먼저 n까지의 합을 구한 뒤 배열의 숫자들을 빼주는 방식으로 구현하였습니다.
public class Solution {
public int missingNumber(int[] nums) {
int numbers = nums.length;
int sum = numbers * (numbers + 1) / 2;
for (int num : nums) {
sum -= num;
}
return sum;
}
}
Test
package io.lcalmsky.leetcode.missing_number;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
class SolutionTest {
@Test
void testAll() {
assertAll(
() -> test(new int[]{3, 0, 1}, 2),
() -> test(new int[]{0, 1}, 2),
() -> test(new int[]{9, 6, 4, 2, 3, 5, 7, 0, 1}, 8)
);
}
private void test(int[] given, int expected) {
// when
Solution solution = new Solution();
int actual = solution.missingNumber(given);
// then
assertEquals(expected, actual);
}
}
'Algorithm > LeetCode' 카테고리의 다른 글
167. Two Sum II - Input Array Is Sorted (0) | 2022.06.17 |
---|---|
1342. Number of Steps to Reduce a Number to Zero (0) | 2022.06.11 |
1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree (0) | 2022.06.04 |
191. Number of 1 Bits (0) | 2022.06.03 |
47. Permutations II (0) | 2022.05.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Linux
- intellij
- spring boot jwt
- 스프링 데이터 jpa
- spring boot application
- proto3
- Jackson
- 헥사고날 아키텍처
- QueryDSL
- 스프링 부트 튜토리얼
- gRPC
- spring boot app
- 함께 자라기
- 스프링부트
- leetcode
- 클린 아키텍처
- 스프링 부트
- Spring Data JPA
- Spring Boot Tutorial
- @ManyToOne
- 스프링 부트 애플리케이션
- Spring Boot JPA
- r
- Java
- 함께 자라기 후기
- JSON
- 스프링 부트 회원 가입
- 알고리즘
- Spring Boot
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함