第九天 補打卡

2021-09-24 08:02:09 字數 1259 閱讀 3803

這個題目和前面那個有點像,所以我還是用前面那種方式解決問題,遍歷,將不等於給定值的交換,**如下:

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 過載 方法名相同,引數列表不同叫做過載,和返回值型別無關。過載方法名必須一致,引數列表不同,和返回值型別無關。引數列表不同 個數不同,順序不同,型別不同 方法過載的時候編譯器會自動找到最適合...