2021.02.01
AC
Easy
345,349,350,367,374,383,387,392
2021.02.05
AC
Easy
401,404,405,409,414
2021.02.06
AC
Easy
415,434
2021.02.07
AC
Easy
441,453
題目分類
345. Reverse Vowels of a String 字符串中的元音字母翻轉,注意大小寫是不同的
先用idx = [i for i,x in enumerate(s) if x == 'a' or x == 'e' or x == 'i' or x == 'o' or x == 'u' or x == 'A' or x == 'E' or x == 'I' or x == 'O' or x == ‘U’]找出所有元音位置然后左右兩個游標
349. Intersection of Two Arrays 判斷兩個列表的重合元素,要求去重
解法一:利用python的dict
解法二:利用python的set
nums1 = set(nums1)
nums2 = set(nums2)
return list(nums1&nums2)
解法三:sort nums2,然后每次二分查找
350. Intersection of Two Arrays II 判斷兩個列表的重合元素,不要去重
解法一:利用python的dict
367. Valid Perfect Square 判斷一個數字是否是平方數
解法一:二分
解法二:純數學,O(1),fast inverse square root implementation from Quake III Arena
解法三:利用平方數性質,n= 1+3+5+…+(i+2)
374. Guess Number Higher or Lower 1~n,猜選定了哪個數,調用guess(mid)判斷大了還是小了,簡單二分
383. Ransom Note 判斷字符串A是否能由B中字符構成,類似350
387. First Unique Character in a String 判斷字符串中第一個只出現了一次的字符是哪個,python的dict使用
392. Is Subsequence 判斷s是否是t的字串(不用連續),兩個游標
401. Binary Watch 手表上用10個bit表示時間,問num個燈亮的時候可能有幾種時間可能性,枚舉0-2^10,用python的bin(i).count(‘1’)判斷對應的二進制數有幾個1,注意判斷小時<12,分鐘<60
404. Sum of Left Leaves 計算一棵樹所有左葉子結點的值之和,簡單DFS,注意遞歸的時候用一個變量標記是不是左葉子
405. Convert a Number to Hexadecimal 十進制數轉十六進制,注意負數特殊處理
409. Longest Palindrome 給定一個字符串,用其中的字符能組成的最長回文字符串多長?除了最中間的可能為單獨字符,其他成對出現,先用python 的dict統計,然后簡單數學
412. Fizz Buzz 簡單模擬
414. Third Maximum Number 求第三大的數,注意去重(先轉set再轉list)以及小于三個數的情況
415. Add Strings 模擬大數加法
434. Number of Segments in a String 判斷一個字符串里面有幾個單詞(可能有前導0,后導0,連續多個0,整個字符串空串)
441. Arranging Coins 給定n,問1+2+。。k<=n的k
l = 1
r = n
while l < r:
mid = math.ceil((l + r) / 2)
if mid * (mid + 1) == 2 * n:
return int(mid)
if mid * (mid + 1) > 2 * n:
r = mid - 1
else:
l = mid
return int(l)
448. Find All Numbers Disappeared in an Array 一個數組里一些數字出現兩次,其他出現一次,問哪些數字沒出現過,利用-1標記出現過的數字
for i in range(0, len(nums)):
if nums[abs(nums[i]) - 1] > 0:
nums[abs(nums[i]) - 1] *= -1
for i in range(0, len(nums)):
if nums[i] > 0:
res.append(i + 1)
453. Minimum Moves to Equal Array Elements 一串數字,每次讓其中n-1個加1,問一共幾次能讓所有數變成相同值,數學題
t = min(nums)
for i in nums:
res += i - t