首页 > 其他分享 >数组

数组

时间:2024-03-03 17:22:36浏览次数:28  
标签:位置 起始 循环 数组 右侧 指针

一、二分查找

思想:寻找左右指针范围的边界

 

二、移除元素

思想:交换,将与目标值相同的元素赋值为数组最右侧元素值,同时最右侧指针左移,直到当前指针位置=右侧指针位置

 

三、有序数组的平方

思想:双指针

最大值只可能在数组的两端产生,不断对比左右指针大小排序

 

四、长度最小的子数组

思想:滑动窗口,不断调节子序列的起始终止位置。

只用一个for循环,索引为滑动窗口的终止位置

每一次循环中固定终止位置,通过不断变更起始位置来计算出最小值

 

五、螺旋数组

模拟过程,上行从左到右,右侧从上到下,下行从右到左,左侧从下到上

可以按照左闭右开原则,注意每次循环的额偏移量,并在四次循环后偏移量+2,起始位置XY轴各+1

循环次数可以按照旋转圈数n/2

每次for循环的判断条件

上:列<起始列位置+n-偏移量

右:行<起始行位置+n-偏移量

下:列>起始列位置

左:行>起始行位置

 

标签:位置,起始,循环,数组,右侧,指针
From: https://www.cnblogs.com/LiChaoyue-11/p/18050326

相关文章

  • Java数组
    Java数组一、什么是数组数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。【数组下标从0开始】二、数组声明创建首先必须声明数组变量,才能在程......
  • 力扣88.合并两个有序数组
    题目:给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m+n......
  • 力扣80.删除排序数组中的重复项 II
    题目:给你一个有序数组nums,请你删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。实现方法:使用map计数,用快慢指针方法,快指针不断加一,慢指针在计数小于出现次数时加一,再将快指针指向的数赋给慢指针指向的数。funcremoveDuplicates(nums......
  • 关联数组 (Associative Array)
    下方数据结构可以被描述为一个JavaScript对象(Object),其中每个键是一个UUID(UniversallyUniqueIdentifier),值是一个待办事项对象。在编程和数据结构领域,这种组织形式没有一个特定的官方名称,但它通常被称为“字典”、“映射”、“关联数组”或“哈希表”。字典(Dictionary):在Pyth......
  • 数组(基于代码随想录)的随笔
    数组数组基础知识数组是存放在连续内存空间上的相同类型数据的集合。数组的元素是不能删的,只能覆盖。那么二维数组在内存的空间地址是连续的么?Java的二维数组在内存中不是3*4的连续地址空间,而是四条连续的地址空间组成!数组的经典题目二分法二分法时间复杂度:O(logn)......
  • 蓝图数组的操作
    基础使用数组元素获取查找项目元素添加,移除遍历数组......
  • 二维数组和坐标系的对应关系
    题目链接城堡问题这题需要你在二维数组上建立坐标系,并找出上下作用分别对应\((x,y)\)的变化关系。对应关系----------->y|||\/xCode#include<iostream>#include<cstring>#include<algorithm>#include<queue>usingnamespacestd;constintN=60;typed......
  • (33/60)K次取反后最大化的数组和、加油站、分发糖果
    K次取反后最大化的数组和leetcode:1005.K次取反后最大化的数组和贪心法思路两次贪心:(每次取反k--)排序,一次遍历,按绝对值从大到小地把负数取反。如果K次取反没用完,再排序一次,反复取反最小元素。(或者一开始就按绝对值从大到小排序,只需排序一次)复杂度分析时间复杂度:O(Nlo......
  • C++ 指针 vs 数组
    指针和数组并不是完全互换的1#include<iostream>23usingnamespacestd;4constintMAX=3;56intmain()7{8intvar[MAX]={10,100,200};910for(inti=0;i<MAX;i++)11{12*var=i;//这是正确的语法13......
  • 树状数组模板
    单修区查【模板】树状数组1题目描述如题,已知一个数列,你需要进行下面两种操作:将某一个数加上$x$求出某区间每一个数的和输入格式第一行包含两个正整数$n,m$,分别表示该数列数字的个数和操作的总个数。第二行包含$n$个用空格分隔的整数,其中第$i$个数字表示数列......