這個題目和前面那個有點像,所以我還是用前面那種方式解決問題,遍歷,將不等於給定值的交換,**如下:
class solution(object):
def removeelement(self, nums, val):
if len(nums) == 0 :
return 0
is_tihan = 0
for i in range(len(nums)):
if nums[i] != val:
nums[i], nums[is_tihan] = nums[is_tihan], nums[i]
is_tihan = is_tihan + 1
return is_tihan
複製**
class solution(object):
def removeelement(self, nums, val):
nums.sort()
n = len(nums)
if n == 0:
return 0
l, r = 0, n - 1
mid, count = 0, 0
while l < r:
mid = (l + r) // 2
if val > nums[mid]:
l = mid + 1
else:
r = mid
if nums[mid] != val:
mid = r
if nums[mid] != val:
return n
for i in range(mid, n):
if nums[i] == val:
count += 1
continue
break
for j in range(mid, n - count):
nums[j] = nums[j + count]
return n - count
複製**
還有一種方式,巧妙的使用了list的特性:
class solution(object):
def removeelement(self, nums, val):
while val in nums:
nums.remove(val)
return len(nums)
複製**
是不是感覺很簡單,python的魅力就在這裡。 CS Notes打卡第九天 Vector
vector集合與arraylist相似,但是vector是執行緒安全的。vector集合使用synchronized關鍵字進行同步,達到執行緒安全,例如add,remove方法 public synchronized boolean add e e public synchronized void...
集訓第九天
今天就看了乙個迪傑斯特拉演算法,他的方法就是從乙個頂點出發,找出這個到與它相關頂點的所有路徑,然後在找出其中最小的,作為基量,一次類推 如下 include define inf 0x7fffffff define maxn 50 int matrix maxn maxn void dijkstra...
開課第九天
畫布 1今天是開課第九天,上午講了關於方法的題,下午講了新知識,嗯,今天有點熱,下面就是本寶寶今天的收穫 1 過載 方法名相同,引數列表不同叫做過載,和返回值型別無關。過載方法名必須一致,引數列表不同,和返回值型別無關。引數列表不同 個數不同,順序不同,型別不同 方法過載的時候編譯器會自動找到最適合...