Array - Top Interview Questions[EASY] (1/9) : Java
전반적인 해설은 여기에 있음(Java) : inner-game.tistory.com/38
leetcode.com/problems/remove-duplicates-from-sorted-array/
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
len_ = 1
if len(nums) == 0:
return 0
for i in range(1, len(nums)):
if nums[i] != nums[i-1]:
nums[len_] = nums[i]
len_ += 1
return len_
leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
class Solution:
def maxProfit(self, prices: List[int]) -> int:
total = 0
for i in range(1, len(prices)):
if prices[i-1] < prices[i]:
total += prices[i]-prices[i-1]
return total
중간에 if문을 너무 정직하게 했다가 고침 ㅎㅎ a - b > 0 이것보다는 a > b가 나음
leetcode.com/problems/rotate-array/
둘다 다시 보기
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
k %= n
start = count = 0
while count < n:
current, prev = start, nums[start]
while True:
next_idx = (current + k) % n
nums[next_idx], prev = prev, nums[next_idx]
current = next_idx
count += 1
if start == current:
break
start += 1
class Solution:
def reverse(self, nums: list, start: int, end: int) -> None:
while start < end:
nums[start], nums[end] = nums[end], nums[start]
start, end = start + 1, end - 1
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
k %= n
self.reverse(nums, 0, n-1)
self.reverse(nums, 0, k-1)
self.reverse(nums, k, n-1)
leetcode.com/problems/contains-duplicate/solution/
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
dic = {}
for n in nums:
if n in dic: return True
else: dic[n] = 1
return False
leetcode.com/problems/single-number/
class Solution:
def singleNumber(self, nums: List[int]) -> int:
a = 0
for i in nums:
a ^= i
return a
class Solution:
def singleNumber(self, nums: List[int]) -> int:
return 2 * sum(set(nums)) - sum(nums)
class Solution:
def singleNumber(self, nums: List[int]) -> int:
hash_table = defaultdict(int)
for i in nums:
hash_table[i] += 1
for i in hash_table:
if hash_table[i] == 1:
return i
leetcode.com/problems/intersection-of-two-arrays-ii/
from collections import defaultdict
class Solution:
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
if len(nums1) > len(nums2):
return self.intersect(nums2, nums1)
dic = defaultdict(int)
for num in nums1:
dic[num] += 1
k = 0
for num in nums2:
if dic[num] > 0:
nums1[k] = num
k += 1
dic[num] -= 1
return nums1[:k]
class Solution:
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
nums1 = sorted(nums1)
nums2 = sorted(nums2)
i = j = k = 0
while i < len(nums1) and j < len(nums2):
if nums1[i] < nums2[j]:
i += 1
elif nums1[i] > nums2[j]:
j += 1
else:
nums1[k] = nums1[i]
k += 1
i += 1
j += 1
print(nums1)
print(nums2)
return nums1[0:k]
leetcode.com/problems/plus-one/
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
n = len(digits)
for i in range(n):
idx = n - 1 - i
if digits[idx] == 9:
digits[idx] = 0
else:
digits[idx] += 1
return digits
return [1] + digits
leetcode.com/problems/move-zeroes/
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
nonZero = 0
for i, num in enumerate(nums):
if num != 0:
nums[nonZero], nums[i] = num, nums[nonZero]
nonZero += 1
leetcode.com/problems/two-sum/
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dic = {}
for i, num in enumerate(nums):
diff = target - num
if diff in dic:
return [i, dic[diff]]
else:
dic[num] = i
leetcode.com/problems/valid-sudoku/
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
n = len(matrix)
for i in range(n // 2 + n % 2):
for j in range(n // 2):
tmp = matrix[n-1-j][i]
matrix[n-1-j][i] = matrix[n-1-i][n-j-1]
matrix[n-1-i][n-j-1] = matrix[j][n-1-i]
matrix[j][n-1-i] = matrix[i][j]
matrix[i][j] = tmp
Array - Top Interview Questions[EASY] (1/9) : Java
String - Top Interview Questions[EASY] (2/9) : Java
Linked List - Top Interview Questions[EASY] (3/9) : Java
Trees - Top Interview Questions[EASY] (4/9) : Java
Sorting and Searching - Top Interview Questions[EASY] (5/9) : Java
Dynamic Programming - Top Interview Questions[EASY] (6/9) : Java
Design - Top Interview Questions[EASY] (7/9) - Java
Array - Top Interview Questions[EASY] (1/9) : Python
String - Top Interview Questions[EASY] (2/9) : Python
Linked List - Top Interview Questions[EASY] (3/9) : Python
Trees - Top Interview Questions[EASY] (4/9) : Python
Sorting and Searching - Top Interview Questions[EASY] (5/9) : Python
Dynamic Programming - Top Interview Questions[EASY] (6/9) : Python
Design - Top Interview Questions[EASY] (7/9) - Python