首页 > 编程语言 >代码随想录算法训练营第一天

代码随想录算法训练营第一天

时间:2022-12-29 10:45:48浏览次数:49  
标签:数组 nums int 训练营 随想录 mid 算法 https 指针

 今日刷题两道:数组理论基础,704. 二分查找,27. 移除元素 **704. 二分查找

题目链接:https://leetcode.cn/problems/binary-search/

文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html

比较简单,但是要注意题目要求,左闭右闭,左闭右开,写法不一样。 class Solution { public:     int search(vector<int>& nums, int target) {         int low = 0;         int high = nums.size()-1;         int mid;         while(low <= high){             mid = (low + high) / 2;             if(target == nums[mid])                 return mid;             else if(target > nums[mid])                 low = mid + 1;             else{                 high = mid - 1;             }         }         return -1;     } }; **27. 移除元素

题目链接:https://leetcode.cn/problems/remove-element/

文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html

暴力解法,双层for循环,通过

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int count = nums.size();
        for(int i=0;i<count;i++){
            if(nums[i]==val){
                for(int j=i+1;j<count;j++){
                    nums[j-1]=nums[j];
                }
                i--;
                count--;
            } 
           
        }
        return count;

}
};

双指针法
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int slow=0;
        for(int fast=0;fast<nums.size();fast++){
            if(nums[fast]!=val){
                nums[slow]=nums[fast];
                slow++;
            }
        }
        return slow;
}
};

双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。

定义快慢指针

  • 快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
  • 慢指针:指向更新 新数组下标的位置
 

标签:数组,nums,int,训练营,随想录,mid,算法,https,指针
From: https://www.cnblogs.com/zzw0612/p/17011878.html

相关文章

  • 算法笔记小抄
    栈和队列​​232.用栈实现队列​​225.用队列实现栈20.有效的括号1047.删除字符串中的所有相邻重复项150.逆波兰表达式求值239.滑动窗口最大值347.前K个高频元素参......
  • C++ 数学与算法系列之高斯消元法求解线性方程组
    1.前言什么是消元法?消元法是指将多个方程式组成的方程组中的若干个变量通过有限次地变换,消去方程式中的变量,通过简化方程式,从而获取结果的一种解题方法。消元法主要有代......
  • LeetCode 寻找数组的中心下标算法题解 All In One
    LeetCode寻找数组的中心下标算法题解AllInOne724.FindPivotIndex寻找数组的中心下标"usestrict";/****@authorxgqfrms*@licenseMIT*@copyr......
  • 【MindStudio训练营第一季】OpenCV插件-案例复现​
    【MindStudio训练营第一季】OpenCV插件-案例复现​案例复现流程​OpenCV插件介绍​本代码仓插件实现了opencv的抠图和缩放功能。抠图:支持根据目标检测的(x,y)坐标和(width,heig......
  • 【MindStudio训练营第一季】课程笔记​
    【MindStudio训练营第一季】课程笔记​新手班课程零基础入门之后,可以了解AI应用的开发流程。使用MindStudio可视化完成流程编排,迅速上手N腾AI应用开发。总结学习的一些知识......
  • 代码随想录算法训练营第一天LeetCode704,35,34,27
    代码随想录算法训练营第一天|LeetCode704,35,34,27LeetCode704二分查找题目链接:https://leetcode.cn/problems/binary-search///第一次做还不知道二分中的左闭右开和左闭......
  • Bellmanford算法
    给你一张简单有向图,边权都为非负整数。以及一些询问,询问两个点之间的距离。图用以下形式给出:第一行输入三个整数n,m,k,表示图的顶点数、边数和询问次数,顶点编号从1到......
  • 算法刷题 Day 1 | 704.二分查找 & 27.移除元素
    今天是开始刷题的第一天,就像背单词书又从Abandon开始了一样,但是这次一定要坚持下来。第一天的内容是熟悉的数组,先来看第一题二分查找704.二分查找题目链接:https://leetc......
  • 《安富莱嵌入式周报》第297期:开源生物医学成像系统,可肺部成像,C算法合集500例,突出极致
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104  2022年最后一期周报,谢谢大家的陪伴视频版:https://www.bil......
  • 内部排序算法的比较
    目录内部排序算法的比较内部排序算法的比较算法种类最好时间复杂度平均时间复杂度最坏时间复杂度空间复杂度是否稳定排序趟数与序列初态有无关系比较次数与序......