#48 Maximum Length of Repeated Subarray (1)
๐ฅ Maximum Length of Repeated Subarray๐ฅ
Example 1:
Input: nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
Output: 3
Explanation: The repeated subarray with maximum length is [3,2,1].
Example 2:
Input: (nums1 = [0, 0, 0, 0, 0]), (nums2 = [0, 0, 0, 0, 0]);
Output: 5;
์ ๊ทผ ์์
๋ฐฐ์ด nums1
์ ์ฒซ ๋ฒ์งธ ์์๊ฐ๋ฐฐ์ด nums2
์ ์๋์ง ์ฐพ๊ธฐ- ๋ฐฐ์ด์ ์์๋งํผ ์ฐพ๋ ํ์ ๋ฐ๋ณต
- ๊ฐ์ ์ซ์๊ฐ ์กด์ฌํ๋ฉด ์๋ก์ด ๋ฐฐ์ด์ ์ถ๊ฐํ๊ธฐ
- ๊ฐ์ ์๋
๋ฐฐ์ด nums2
์์ ์ญ์ ํ๊ธฐ - ์๋ก์ด ๋ฐฐ์ด์ ๊ธธ์ด ๋ฆฌํดํ๊ธฐ
์ฝ๋ ์์ฑ
let findLength = function(nums1, nums2) {
let repeatedSubArray = [];
for (let i = 0; i < nums1.length; i++) {
let repeatedNumber = nums2.find(num => num === nums1[i]);
if (repeatedNumber) {
repeatedSubArray.push(repeatedNumber);
let repeatedNumberIndex = nums2.indexOf(repeatedNumber);
nums2.splice(repeatedNumberIndex, 1);
}
}
return repeatedSubArray.length;
};
ํ ์คํธ ์คํจ ๋ฑ์ฅ
Input: (nums1 = [0, 0, 0, 0, 1]), (nums2 = [1, 0, 0, 0, 0]);
Output: 5;
Expected: 4;
ํฌ๋ํฐ ๋ฌธ์ ๋ฐ๊ฒฌ!
- ์์ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํ๊ณ ์์๋ค. ์ฐ์๋ ๋ฐฐ์ด์์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์๋๋ฐ ๋๋ ๊ฐ์ ์ซ์๋ฅผ ์ฐพ๋๋ค๊ณ ์ฐฉ๊ฐํ๋ค! ํ ์คํธ์ฝ๋๋ฅผ ํตํด์ ๋ด๊ฐ ํ๋ ธ๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์๋ค. ํ ์คํธ ์ฝ๋ ๋๋ถ์ ๋ด๊ฐ ๋ฌธ์ ๋ฅผ ์๋ชป ํ์ ํ๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ ์ ์์๋ค.
- ์๋กญ๊ฒ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๋ด๊ฐ ์๊ฐํ ๋ฐฉ๋ฒ์ 1. ๋ฐฐ์ด ์์๊ฐ ๊ฐ์๊ฒ ์กด์ฌํ๋์ง ์ฐพ๊ธฐ 2. ์ฐ์๋๋์ง ๋ฐ๋ณต์ ํตํด์ ๋ฐ๊ฒฌํ๊ธฐ.
๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์ฐ์๋๋์ง, ๋ช๊ฐ๊ฐ ์ฐ์๋๋์ง ์์๋ด๋ ค๊ณ ํ๋ ๊ฐ์๊ธฐ ๋จธ๋ฆฌ๊ฐ ๋ฉํด์ก๋ค. ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด์ผํ๋.
์์ง ์ด ๋ฌธ์ ๋ฅผ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
ํํธ์๋
Use dynamic programming. dp[i][j] will be the answer for inputs A[i:], B[j:].
๋ผ๊ณ ๋์๋๋ฐ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ด ๋๋์ฒด ๋ญ๊น - ์ด๋ฐ ์ ํ์ ๋ฌธ์ ๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํ๋ฉด ๋๋๊ตฌ๋ ํด์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ด ๋ญ์ง ๊ฒ์ํด๋ณด์๋ค.
์๊ฐํ
Input: nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
Output: 3
Explanation: The repeated subarray with maximum length is [3,2,1].
[] | 1 | 2 | 3 | 2 | 1 | |
---|---|---|---|---|---|---|
[] | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 1 | 0 | 0 |
2 | 0 | 0 | 1 | 0 | 2 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 3 |
4 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 0 |
WILT : What I Learned Today ๐ค
- ์กฐ๊ฑด๋ฌธ์ true๋ก๋ง ์ฃผ๋๊น falsy๊ฐ์ธ 0์ด ์กฐ๊ฑด์์ ์ ์ธ๋์๋ค. ๋ฐ์ดํฐ๊ฐ ์ด๋ค boolean ๊ฐ์ ๊ฐ์ง๋์ง ์๊ฐํด๋ณด๋ ๊ฒ๋ ์ค์ํ๋ค
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์์ง ์ดํดํ์ง ๋ชปํ๋ค. ๋ด์ผ ๋ค์ ๊ฐ๋
๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๋ค ์ฝ๋๋ฅผ ์์ฑํด๋ด์ผ๊ฒ ๋ค. ์๊ณ ๋ฆฌ์ฆ ๋์ด๋
medium
์ ์ด๋ง์ด๋ง ํ๊ตฌ๋!!
์ฐธ๊ณ
Maximum Length of Repeated Subarray | leetcode 718 | Live coding session
Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges