【算法训练营】【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]
相关推荐
君义_noip18 小时前
信息学奥赛一本通 1661:有趣的数列 | 洛谷 P3200 [HNOI2009] 有趣的数列
c++·算法·组合数学·信息学奥赛·csp-s
程序员:钧念18 小时前
深度学习与强化学习的区别
人工智能·python·深度学习·算法·transformer·rag
英英_19 小时前
MATLAB数值计算基础教程
数据结构·算法·matlab
一起养小猫19 小时前
LeetCode100天Day14-轮转数组与买卖股票最佳时机
算法·leetcode·职场和发展
hele_two19 小时前
快速幂算法
c++·python·算法
l1t20 小时前
利用DeepSeek将python DLX求解数独程序格式化并改成3.x版本
开发语言·python·算法·数独
jllllyuz20 小时前
基于子集模拟的系统与静态可靠性分析及Matlab优化算法实现
算法·matlab·概率论
程序员-King.20 小时前
day143—递归—对称二叉树(LeetCode-101)
数据结构·算法·leetcode·二叉树·递归
BlockChain88820 小时前
字符串最后一个单词的长度
算法·go
爱吃泡芙的小白白20 小时前
深入解析:2024年AI大模型核心算法与应用全景
人工智能·算法·大模型算法