leepcode 作業詳解 1、給定一個整數數組,判斷是否存在重覆元素。如果任何值在數組中出現至少兩次,函數返回 true。如果數組中每個元素都不相同,則返回 false。 正確解答 第一次用字典去解題,出現bug,雖然在pycharm裡面代碼運行正常,但是leepcode顯示錯誤。 2、給定一個整 ...
leepcode 作業詳解
1、給定一個整數數組,判斷是否存在重覆元素。如果任何值在數組中出現至少兩次,函數返回 true。如果數組中每個元素都不相同,則返回 false。
正確解答
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
nums_set=set(nums)
return (len(nums_set) != len(nums))
第一次用字典去解題,出現bug,雖然在pycharm裡面代碼運行正常,但是leepcode顯示錯誤。
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
lis1=[1,2,3,1]
dic={}
for i in lis1:
if i in dic:
dic[i] += 1
else:
dic[i] = 1
if dic[i] >=2:
return (dic[i]>=2)
else:
return (dic[i] >= 2)
##if dic[i] >=2:
##print('true')
##else:
##print('false')
2、給定一個整數數組 nums
和一個目標值 target
,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。
你可以假設每種輸入只會對應一個答案。但是,你不能重覆利用這個數組中同樣的元素。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
nums = [2,7,11,15]
target = 9
for i in range(len(nums)):
if i < (len(nums) -1):
if nums[i] + nums[i+1] == target:
return(i,i+1)
3、編寫一個函數,其作用是將輸入的字元串反轉過來。輸入字元串以字元數組 char[]
的形式給出。
不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。
你可以假設數組中的所有字元都是 ASCII 碼表中的可列印字元。
return s.reverse()