首页 > 其他分享 >day1.数组

day1.数组

时间:2024-06-05 22:14:35浏览次数:11  
标签:数组 元素 day1 middle https 移除 左闭 left

题目:

https://leetcode.cn/problems/binary-search/submissions/537498050/
代码随想录解析:
https://programmercarl.com/0704.二分查找.html#思路

并不熟悉区间不变,很容易写乱,一定要清晰的知道自己的边界。

特别需要注意的是,如果为左闭右开,则while中的判断是<;
如果为左闭右闭,则while中的判断是<=;
此外这个还影响到后续target中的判断,如果为左闭右闭的话,则在

if (nums[middle] > target) {
                right = middle - 1; // target 在左区间,所以[left, middle - 1]

如果为左闭右开的话则不需要减1;

此外还有一个非常有意思的地方是这里寻找中点的方法为:

int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2

这是几个需要注意的点。

题目:

https://leetcode.cn/problems/remove-element/
代码随想录解析:
https://programmercarl.com/0027.移除元素.html#思路
这道题我用的是暴力解法和双指针都用了下,

其中让我注意到的是暴力解法中的i--

这里为什么要使用i--呢,这是因为:

不使用 i-- 会导致在移除元素后,紧跟在被移除元素后的元素被跳过,未被检查,从而无法正确移除所有目标值。
这是因为在移除元素后,数组中的元素向前移动,但循环中的索引 i 继续向前增加,导致新移到当前索引位置的元素未被检查。

标签:数组,元素,day1,middle,https,移除,左闭,left
From: https://www.cnblogs.com/zhangenigma/p/18232435

相关文章

  • Day1 学习笔记及成果---MapReduce实现手机流量统计分析
    Day1学习笔记及成果—MapReduce实现手机流量统计分析题目统计每个手机号上行流量和、下行流量和、总流量和(上行流量和+下行流量和),并且:将统计结果按照手机号的前缀进行区分,并输出到不同的输出文件中去。13*==>…15*==>…other==>…其中,access.log数据文件部分......
  • Studying-代码随想录算法训练营day1| 数组理论基础,704二分查找,27.移除元素
    第一天......
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk
    [CISCN2019华北赛区Day1Web5]CyberPunk在源代码中发现提示可能存在文件包含,并且还有search.php,change.php,delete.php这三个文件,通过php伪协议进行读取?file=php://filter/convert.base64-encode/resource=index.php?file=php://filter/convert.base64-encode/resource=sear......
  • 6.5数组--模拟、偏移量-螺旋矩阵
    M:59.螺旋矩阵II题意描述给你一个正整数n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]]示例2:输入:n=1输出:[[1]]提示:1<=n<=20思路这道题目可以说在面试中出现......
  • 力扣刷题--2553. 分割数组中数字的数位【简单】
    题目描述给你一个正整数数组nums,请你返回一个数组answer,你需要将nums中每个整数进行数位分割后,按照nums中出现的相同顺序放入答案数组中。对一个整数进行数位分割,指的是将整数各个数位按原本出现的顺序排列成数组。比方说,整数10921,分割它的各个数位得到[1,0......
  • Day14 | 二叉树递归遍历
    递归遍历(必须掌握)二叉树的三种递归遍历掌握其规律后,其实很简单题目链接/文章讲解/视频讲解:https://programmercarl.com/二叉树的递归遍历.html注意前中后指的是根节点在前、中、后次序进行遍历。前序遍历#Definitionforabinarytreenode.#classTreeNode:#de......
  • 习题整理《C++17从入门到精通》第五章-复合类型:数组、指针和引用
                                                            //复习用,如有错误,请指正1.下面程序的输出是什么?#include<iostream>usingnamespacestd;intmain(){intx=10;int&ref=x;......
  • 代码随想录算法训练营第五天 | 哈希表基础、有效字母异位、两个数组交集、快乐数
    哈希表基础理论https://programmercarl.com/哈希表理论基础.html#哈希表242有效字母异位词题https://leetcode.cn/problems/valid-anagram/description/242代码随想录解析https://programmercarl.com/0242.有效的字母异位词.html#算法公开课349两个数组的交集https://leetc......
  • 6.4数组--移除元素
    26.删除有序数组中的重复项题意描述:给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确......
  • C语言第三篇-数组
    数组定义数组是一组相同类型元素的集合;也就是一组数。数组的创建方式chararr3[10];//char是指数组的元素类型;10是一个常量表达式,用来指定数组的大小floatarr4[5];//float是指数组的元素类型;5是一个常量表达式,用来指定数组的大小doublearr5[2......