1、移动0
class Solution(object):
def moveZeroes(self, nums):
if not nums:
return 0
j = 0
l = len(nums)
for i in range(l):
if nums[i]:
nums[j] = nums[i]
j += 1
for k in range(j,l):
nums[k] = 0
1、第一次遍历统计非0的个数,并将非0元素统统赋给nums[j]
2、第二次遍历,将j到l位置上的元素值设为0
2、第一个错误的版本
class Solution(object):
def firstBadVersion(self, n):
left = 0
right = n
while left < right:
mid = (left + right) // 2
if isBadVersion(mid):
right = mid
else:
left = mid +1
return left
二分查找:
循环终止条件:left=right,不断地缩减边界,直至压缩到符合条件的值