首页 > 编程语言 >代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

时间:2024-03-21 17:33:05浏览次数:27  
标签:27 nums int 随想录 fast slow 移除 指针 left

704. 二分查找

  1. 有顺序
    2.左右 双指针
  2. 通过中间位大小来判断指针移动
    难点:
  • 边界
  • 防止溢出错误: mid = left + (right - left) //2
    Complexity: O(log(n))

class Solution: def search(self, nums: List[int], target: int) -> int: # sorted list # binary search left = 0 right = len(nums) - 1 while left <= right: mid = left + (right - left) //2 if nums[mid] < target: left += 1 elif nums[mid] > target: right -= 1 else: return mid return -1

27. 移除元素
快慢指针
快指针用来搜索, 慢指针用来更新内容。
关键点:nums[slow] = nums[fast]
Complexity: O(n)

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        fast, slow = 0, 0
        count = 0
        while fast < len(nums):
            if nums[fast]!= val:
                nums[slow] = nums[fast]
                slow += 1
                count += 1
            fast += 1
        return count

标签:27,nums,int,随想录,fast,slow,移除,指针,left
From: https://www.cnblogs.com/mushuaaa/p/18087879

相关文章

  • 代码随想录算法训练营day29 | leetcode 491. 非递减子序列、46. 全排列、47. 全排列 I
    目录题目链接:491.非递减子序列-中等题目链接:46.全排列-中等题目链接:47.全排列II-中等题目链接:491.非递减子序列-中等题目描述:给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。数组中可能含有重......
  • 解决 [FATAL] plugin/loop: Loop (127.0.0.1:49443 -> :53) detected for zone "." 报
    问题背景:这个是安装k8s时报的错,安装使用的是ubuntu系统,当安装到coredns时报如下错 解决方法:查找了一番资料,得出结论这个算是ubuntu和k8scoredns安装的一个兼容性问题,不过很好解决,参照coredns官方文档就可以~首先贴出官网:https://coredns.io/plugins/loop/#troubleshooting......
  • 代码随想录第15天|二叉树的层序遍历
    二叉树的层序遍历102.二叉树的层序遍历-力扣(LeetCode)代码随想录(programmercarl.com)讲透二叉树的层序遍历|广度优先搜索|LeetCode:102.二叉树的层序遍历_哔哩哔哩_bilibili给你二叉树的根节点 root ,返回其节点值的 层序遍历 。(即逐层地,从左到右访问所有节点)......
  • 代码随想录第14天|二叉树的递归遍历
    二叉树的理论基础代码随想录(programmercarl.com)关于二叉树,你该了解这些!|二叉树理论基础一网打尽,二叉树的种类、二叉树的存储方式、二叉树节点定义、二叉树的遍历顺序_哔哩哔哩_bilibili二叉搜索树:二叉搜索树是一个有序树。左子树不为空,则左子树上所有节点的值均小于根......
  • 开发者导航:分享27个程序员免费学习的资源网站(第二期)
    开发者导航:分享27个程序员免费学习的资源网站(第二期)一个不能回避的问题就是,现在程序员的职场大环境是真的越来越差了,如果我们每天只是完成公司领导安排的任务,不去提升自己的技术,提高自己的不可替代性,你有想过有一天镰刀落在自己头上时,该如何应对吗?今天站长分享的网站主要都......
  • 开发者导航:分享27个程序员免费学习的资源网站(第一期)
    开发者导航:分享27个程序员免费学习的资源网站(第一期)一个不能回避的问题就是,现在程序员的职场大环境是真的越来越差了,如果我们每天只是完成公司领导安排的任务,不去提升自己的技术,提高自己的不可替代性,你有想过有一天镰刀落在自己头上时,该如何应对吗?今天站长分享的网站主要都......
  • P2742 [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包
    原题链接题解这么优质的文章我写什么题解好难解释必然性感觉像模拟??code#include<bits/stdc++.h>usingnamespacestd;intq[100005]={0};structnode{doublex,y;}a[100005];doubledis(intb,intc){nodei=a[b],j=a[c];returnsqrt((i.x-j.x)*(i.x-......
  • 01天【代码随想录算法训练营34期】 第一章 数组part01 (704. 二分查找、 27. 移除元
    二分查找classSolution(object):defsearch(self,nums,target):low=0high=len(nums)-1while(low<=high):mid=(high+low)//2ifnums[mid]==target:returnmide......
  • 【代码随想录】广度优先搜索
    思路分析先前已经做过一道深度优先搜索了,可以看出,DFS比较适合求两点之间的所有路径这样的问题,因为其路径都是逐条求出的,而BFS则可能一下子求出多条路径,适合用来求最短路径。关于BFS的过程前面已经学习过很多次了,遍历到一个节点时要先保存其所有邻接节点再继续向下遍历,一般是使......
  • 代码随想录刷题记录第一天 | 数组 | 704. 二分查找,27. 移除元素
    题目链接:704.二分查找-https://leetcode.cn/problems/binary-search/description/27.移除元素-https://leetcode.cn/problems/remove-element/description/文章学习链接:https://programmercarl.com/数组理论基础.html视频学习链接:https://www.bilibili.com/video/BV1f......