更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。 nums 的其余元素和 nums 的大小并不重要。
返回 k 。
这个有一个题解写的很好,简单来说就是把所有不等于val的填到nums里
1 2 3 4 5 6 7 8 9 10
class Solution: def removeElement(self, nums: List[int], val: int) -> int: k=0 for i in range(0,len(nums)): if nums[i]!=val: nums[k]=nums[i] k=k+1 #print(k) return k
class Solution: def removeDuplicates(self, nums: List[int]) -> int: dic = {} k = 0 # 个数 for i in range(len(nums)): if nums[i] not in dic: dic[nums[i]] = True # 记录该元素已经出现过 nums[k] = nums[i] # 将非重复元素放在前面 k += 1 # 计数+1
class Solution: def removeDuplicates(self, nums: List[int]) -> int: # 如果数组长度小于等于 2,直接返回长度 if len(nums) <= 2: return len(nums) # k 指向要插入的下一个位置 k = 2 # 从索引 2 开始遍历数组 for i in range(2, len(nums)): # 只要当前元素与 k-2 位置的元素不相同,说明没有超过两次 if nums[i] != nums[k - 2]: nums[k] = nums[i] k += 1 return k
class Solution: def majorityElement(self, nums: List[int]) -> int: dic={} k=0 for i in range(0,len(nums)): if nums[i] not in dic: dic[nums[i]]=1 elif nums[i] in dic: dic[nums[i]]=1+dic[nums[i]] #每个数字出现的次数,遇见了就加一个 for key, value in dic.items(): if value>(len(nums)//2) : print(key,value) k=key #输出符合要求的key return k