算法刷题笔记
力扣和牛客网的简单算法刷题
薯条和番茄酱
天天开心
展开
-
第一个只出现一次的字符--牛客--31
HashMap,常用于统计频率或快速检验某个元素是否出现过,字母对应key,频率对应values,HashMap中的getOrDefault(Object key,Object defaultValues)方法,若存在key则返回对应的values,若无则返回defaultValues,该方法可以用来统计每个字符出现的频率。在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)要求:空间复杂度 O(n),时间复杂度 O(n)原创 2022-11-04 16:38:23 · 64 阅读 · 0 评论 -
连续子数组最大和--牛客NC19
输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。数据范围:要求:时间复杂度为 O(n),空间复杂度为 O(n)进阶:时间复杂度为 O(n),空间复杂度为 O(1)原创 2022-11-03 10:50:07 · 108 阅读 · 0 评论 -
螺旋矩阵--力扣59
1.首先明确规律:上左——上右;3.代码实现:很容易想到从左到右是可以利用for循环对第一行数组元素赋值;2.确定界限定义,l,r,t,d;可以简单的确定以及表示四个方位界限,这个题,很容易想到螺旋遍历数组,设置条件使螺旋数组转换方向。可以用四个for循环走完螺旋数组,同时for循环中。比如左上——右上,相当于走完顶上第一行,t--;i 初始值以及范围都可联系界限设定;同时每转一次界限要改变,原创 2022-10-18 20:25:25 · 152 阅读 · 0 评论 -
螺旋矩阵--力扣59
l,r,t,d;可以简单的确定以及表示四个方位界限,同时每转一次界限要改变,比如左上——右上,相当于走完顶上第一行,t–;原创 2022-10-18 21:40:18 · 61 阅读 · 0 评论 -
原地移除元素--力扣27
/ 当不等于val时赋值给nums[j]// j指向下一个位置。// 相当于开辟一个虚拟数组。// 定义另一个指针,指向零处。原创 2022-10-12 09:42:45 · 48 阅读 · 0 评论 -
有序数组的平方--977力扣
直接对数组平方后排序,开辟新数组储存平方后的数据,用Java中sort()方法排序。原创 2022-10-13 10:44:41 · 121 阅读 · 0 评论 -
二分查找--java
*二分查找,不断缩小范围减小时间复杂度,直至缩小到中间值等于目标值,在该条件下左右边界重合。含有左边界right、left、midnum,查找结束条件,左右边界重合。此题极易想当然,忘记二分查找,直接遍历输出下标值会出错。原创 2022-10-09 20:05:26 · 160 阅读 · 0 评论 -
最小公共子串——力扣
此题原本采用在数组内用第一个字符串与其他的相比较,欲采用双重循环,但是在与多个比较时容易出现许多错误,index直接加一当没有一样的时候会d多加一个出错,各种错误不好更改,即应该分情况解题,最好将核心方法与整体分开便于改错。则官解中两个相比写一个方法较为稳妥。//将第一个设为最大公共子串。原创 2022-10-09 15:34:22 · 445 阅读 · 1 评论