草庐IT

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

 代码随想录算法训练营第一天|LeetCode704.二分查找、目录 代码随想录算法训练营第一天|LeetCode704.二分查找、LeetCode27.移除元素1.数组理论基础 1.1什么是数组1.2数组的创建及初始化1.2.1动态初始化:在创建数组时,直接指定数组中元素的个数1.3 数组的使用1.3.1 数组中元素访问[注意事项]:1.3.2 遍历数组1.4 数组是引用类型1.5二位数组1.5.1基本语法1.5.2代码实例2.LeetCode704.二分查找2.1自己的思路2.2易错点2.3思路2.3.1左闭右闭写法:2.3.2代码2.3.3 左闭右开写法:2.3.4代码3.LeetCod

704. 二分查找

1.题目给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:你可以假设nums中的所有元素是不重复的。n将在[1,10000]之间。nums的每个元素都将在[-9999,9999]之间。2.知识点二分查找思路:针对于有序的数组先找到数组的中间值,若需要查找的数据

LeetCode 704. 二分查找 27. 移除元素 | 代码随想录算法训练营day01

文章目录前言LeetCode704.二分查找1.题目2.思路3.代码LeetCode27.移除元素1.题目2.思路3.代码总结前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。LeetCode704.二分查找1.题目给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现

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

704.二分查找题目链接:704.二分查找方法一:暴力遍历varsearch=function(nums,target){for(vari=0;inums.length-1;i++){if(nums[i]==target){returni}}return-1}方法二:二分法使用二分法的条件:有序数组无重复值二分法的两种写法左闭右闭[left,right]while(left[left,right]的条件下,当left=right,仍然在此区间内if(nums[mid]>target)right=mid-1还是right=mid[left,rght]的条件下,当right=mid时,nums[m

非科班菜鸡算法学习记录 | 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

简单学过C++语法,自己也刷过一些算法题(20来道),但感觉不成系统。这次就从头系统的学一学!704二分查找知识点:二分查找   状态:一遍过(可能是因为之前做过有肌肉记忆)思路:如果只有一个数,直接比较;多个数时先用l,r,定义左右边界,每次比较mid=(l+r)/2的数字,如果target>num[mid],移动左边界l到mid+1,用while(l代码:class Solution {public:    int search(vector& nums, int target)     {        int n = nums.size();        if ( n == 1)  

704.二分查找 27.移除元素

LeetCode704二分查找1.左闭右开1publicintsearch(int[]nums,inttarget){2intleft=0;3intright=nums.length;45if(targetnums[right-1]){6return-1;7}89while(leftright){10intmiddle=(left+right)>>1;11if(target==nums[middle]){12returnmiddle;13}elseif(targetnums[middle]){14right=middle;15}elseif(target>nums[middle]){16lef

Leetcode 704. 二分查找(Binary Search)

题目链接给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中且下标为4示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:你可以假设nums中的所有元素是不重复的。n将在[1,10000]之间。nums的每个元素都将在[-9999,9999]之间。思路这道题目的前提是数组为有序数组,且数组中没有重复元素,因为一旦有重复元素,

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

704.二分查找https://leetcode.cn/problems/binary-search/二分查找类似于查字典,每次找一半。需要注意的是二分时区间的选取。大多数情况选用左闭右闭和左闭右开两种方式。左闭右闭:classSolution{public:intsearch(vector&nums,inttarget){intleft=0,right=nums.size()-1;while(lefttarget)right=middle-1;elseif(nums[middle]用[1,1]做例子可知left可以等于right,但是比较时不能用等于,会重复上次循环的数据,并且left,ri

代码随想录算法训练营第一天 |704. 二分查找,27. 移除元素,977.有序数组的平方,209.长度最小的子数组

1、704.二分查找    思路:        对于二分查找,主要是两个定义,左闭右闭[lift,right]、左闭右开[lift,right);        主要还是在程序里,当在while(lift中,左闭右闭是有意义的。此时更新        right=middle-1因为在判断里target已经是不等于数组下标middle对应的数。      classSolution{public:intsearch(vector&nums,inttarget){intleft=0;intright=nums.size()-1;while(lefttarget){right=middle-1;

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

704. 二分查找简单给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:你可以假设 nums 中的所有元素是不重复的。n 将在 [1,10000]之间。nums 的每个元素都将在 [-9999,9999]之间。第一种方法左闭右开clas