【算法训练营】【day1】数组part01

【day1】数组part01

1. 二分查找

py 复制代码
class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left = 0
        right = len(nums) - 1
        while left <= right:
            mid = left + ((right - left) // 2)
            if nums[mid] < target:
                left = mid + 1
            elif nums[mid] > target:
                right = mid - 1
            else:
                return mid
        return -1

2. 移除元素

py 复制代码
class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        slow = 0
        for fast in range(len(nums)):
            if nums[fast] != val:
                nums[slow] = nums[fast]
                slow += 1
        return slow

3. 有序数组的平方

py 复制代码
class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        res = []
        left = 0
        right = len(nums) - 1
        if nums[0] >= 0:
            return [x**2 for x in nums]
        if nums[-1] <=0:
            return [x**2 for x in nums[::-1]]
        for i in range(len(nums)):
            if nums[left]**2 > nums[right] ** 2:
                res.append(nums[left] ** 2)
                left += 1
            else:
                res.append(nums[right] ** 2)
                right -= 1
        return res[::-1]
相关推荐
NAGNIP14 小时前
GPT-5.1 发布:更聪明,也更有温度的 AI
人工智能·算法
NAGNIP14 小时前
激活函数有什么用?有哪些常用的激活函数?
人工智能·算法
元亓亓亓15 小时前
LeetCode热题100--416. 分割等和子集--中等
算法·leetcode·职场和发展
BanyeBirth15 小时前
C++差分数组(二维)
开发语言·c++·算法
xu_yule16 小时前
算法基础(数论)—算法基本定理
c++·算法·算数基本定理
CoderCodingNo17 小时前
【GESP】C++五级真题(结构体排序考点) luogu-B3968 [GESP202403 五级] 成绩排序
开发语言·c++·算法
YGGP18 小时前
【Golang】LeetCode 32. 最长有效括号
算法·leetcode
自然常数e18 小时前
字符函数和字符串函数
c语言·算法·visual studio
leaves falling19 小时前
c语言分数求和
算法