自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 收藏
  • 关注

原创 位运算基础知识这一篇就够了

文章目录1.位运算2.有符号整数、无符号整数3.原码,反码,补码3.1 原码3.2 反码3.3 补码4.为什么使用补码4.1 统一数字0的表示4.2 简化整数的加减法计算5. 有符号整数二进制规律6. 位运算6.1 按位取反:~6.2 左移(<<)6.3 右移(>>)位运算针对二进制0,11.位运算&:按位与(11得1,10、01、00得0)|:按位或(00得0, 10、01、11得1)^:异或(相同得0,不同得1)2.有符号整数、无符号整数有符

2021-08-27 18:45:22 751

原创 109.数组中的最长山脉

文章目录一、题目描述二、解题思路三、代码演示一、题目描述我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < … B[i-1] < B[i] > B[i+1] > … > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)给出一个整数数组 A,返回最长 “山脉” 的长度。如果不含有

2021-08-24 19:31:35 473

原创 108.划分字母区间

文章目录一、题目描述二、解题思路三、代码演示一、题目描述字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。二、解题思路使用滑动窗口来解决,根据上面的示例,其实可以把每个片段看成是一个窗口,只要保证当前窗口中出现的字符不会出现在其它窗口即可,下面模拟一下这个过程:第一步:对于第一个字符a,看它最远出现在如下的位置:说明当前片段至少是left到right之间,那最终是不是还要取决于这个区间其它元素最远出现的

2021-08-24 11:28:46 328

原创 107.字符串的排列

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,s1 的排列之一是 s2 的 子串 。二、解题思路使用滑动窗口,以s1="ab",s2="aidbaooo"为例,模拟一下滑动窗口的过程。首先需要计数,获得s1中每个字符出现的次数,然后遍历s2,每出现一个s1中的字符,就将计数减1,当s1中所有的字符都出现了,并且窗口长度等于s1的长度时,说明在s2中找到了s1的排列。下面是s1中的字符计数第

2021-08-24 10:27:30 290

原创 106.串联所有单词的字串

文章目录一、题目描述二、解题思路方案一:使用哈希查找,具体看代码。方案二:滑动窗口三、代码演示一、题目描述给定一个字符串 s 和一些长度相同的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。二、解题思路方案一:使用哈希查找,具体看代码。方案二:滑动窗口以示例一为例,因为words中的单词长度是3,所以每3个字母是一组第一步:前三个是一

2021-08-23 21:02:06 380

原创 105.最大连续1的个数

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个二进制数组, 计算其中最大连续 1 的个数。二、解题思路使用滑动窗口,只要保证窗口中的所有元素是1即可,当遇到一个0的时候,窗口断掉了。初始还是定义两个指针,然后right指针开始向后遍历,只要是1就一直向后走,当遇到一个0是更新窗口的长度ans.第一步:right向后遍历,遇到0,更新窗口长度ans=3第二步:left直接移动到right加1的位置处,right一直向后走,遇到0为止:重复第一第二步,直到数组遍历完:

2021-08-23 20:58:34 95

原创 104.最小覆盖子串

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。二、解题思路使用滑动窗口,s="ABAACBAB",T="ABC",定义两个指针来遍历,使用变量minLen来记录窗口长度:第一步:right

2021-08-22 18:53:33 248

原创 103.无重复字符的最长字串

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。二、解题思路使用滑动窗口,类似于我的102_长度最小的子数组题目,下面来模拟下过程:给定一个字符串,定义两个指针一个变量,这个变量maxlength用来存储晃动窗口的大小。第一步:初始位置没有重复字符,right向右移动,移动后看是否有重复字符,如果没有则maxLength=2第二步:right继续向后移动,此时窗口里的元素有重复,尝试缩小窗口,left指针向后

2021-08-22 15:27:47 335

原创 102.长度最小的子数组

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。二、解题思路使用滑动窗口,下面来模拟一下过程,假设有如下的数组nums,并且定义了两个指针left和right,两个变量currWindowSum=0,ans = MAX_VALUE,其中

2021-08-20 10:28:21 179

原创 101.子数组最大平均数

文章目录一、题目描述二、解题思路2.1 方案一:暴力求解和前缀和的方式2.2 方案二:滑动窗口降低空间复杂度三、代码演示一、题目描述给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。二、解题思路2.1 方案一:暴力求解和前缀和的方式这种方法是会超时的,从开始位置枚举出每一个符合条件的连续子数组,然后求平均数,最终保留最大平均数。时间复杂度是O(nk),这里还是给出代码。class Solution { public double findMaxAverag

2021-08-20 10:22:36 1779

原创 100.杨辉三角II

文章目录一、题目描述二、解题思路2.1 思路一2.2 思路二(进阶):使用一个数组三、代码演示一、题目描述给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。进阶:你可以优化你的算法到 *O*(*rowIndex*) 空间复杂度吗?二、解题思路2.1 思路一先参考我的99_杨辉三角,求出整个杨辉三角,再获取指定的行即可。假设指定了需要第rowIndex行的元素,那么时间复杂度就是O(rowIndex^2/2),因

2021-08-20 10:14:07 203

原创 99.杨辉三角

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。二、解题思路使用直接模拟的方式来计算,假设就以示例一为例,对应的杨辉三角是:我们将其变化一下这就可以看成是一个二维数组的下半边。会发现这个数组的特点,第一列和主对角线的位置全是1,所以在循环遍历每个位置时,当遇到col=0或者row=col的位置都赋值为1。对于中间的元素的值是该元素上一行前一列的元素

2021-08-20 10:06:23 224

原创 98.对角线遍历

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。二、解题思路对角线遍历:根据题目给定一个矩阵(如下),我们可以发现遍历的顺序分为斜上走和斜下走,分别有不同的特点:考虑边界条件:条件一:假如,下面这个先斜上走,遍历完1之后,下一个遍历的元素根据上面斜上走的条件,发现超出边界,此时应该调转方向:row<0:row=0,col不变,换方向表示当row小于

2021-08-20 09:55:58 1795 1

原创 Servlet[dispatcherServlet]的Servlet.init()引发异常

Servlet[dispatcherServlet]的Servlet.init()引发异常问题描述:今天在测试springMVC的时候出现的错误,错误的根本原因有很多,我遇到的是下面这种,一定要和自己的错误对上:根本原因错误代码的我这里也粘一下吧:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.metho

2021-08-14 09:53:59 3790

原创 97.螺旋矩阵II

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。二、解题思路先参考我的96_螺旋矩阵方案一的代码,直接改改就可以了。三、代码演示方案一:直接模拟class Solution { public int[][] generateMatrix(int n) { //使用2*4的数组:往右,往下,往左,往上,0表示不变,1是加1,-1是

2021-08-13 11:25:46 163

原创 96.螺旋矩阵

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。二、解题思路方案一:直接模拟往右开始遍历,特点就是row不变,col加1,一直到超出索引范围或遇到已经遍历的元素。往下遍历,特点是row加1,col不变,一直到超出索引范围或遇到已经遍历的元素。往左遍历,特点是row不变,col减1,一直到超出索引范围或遇到已经遍历的元素。往上遍历,特点是row减1,col不变,一直到超出索引范围或遇

2021-08-13 11:24:12 351

原创 95.矩阵置零

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?二、解题思路思路一:使用额外空间先来模拟一下置0过程,使用额外的矩阵,每遍历到一个0元素,就在新的矩阵上将这个0

2021-08-13 11:21:06 827

原创 94.旋转图像

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。二、解题思路方案一:根据题目以示例1为例,通过坐标来分析一下旋转之后的图像坐标有没有什么规律呢?对于第一个元素1,坐标是(0,0),旋转之后是(0,2);对于第二个元素2,坐标是(0,1),旋转之后是(1,2);对于第三个元素3,坐标是(0,

2021-08-13 11:12:55 173

原创 93.有效的数独

文章目录一、题目描述二、解题思路三、代码演示一、题目描述请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。二、解题思路这道题需要使用一

2021-08-13 11:08:06 168

原创 92.转置矩阵

文章目录二、题目描述二、解题思路三、代码演示二、题目描述给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。二、解题思路方法:直接模拟矩阵的转置就是将矩阵中每个元素的行列坐标交换生成该元素新的坐标,对于一个m*n的矩阵,它的转置矩阵就是n*m,求一个矩阵的转置矩阵之前先应该申请一个矩阵:先来看第一个元素1坐标(0,0),转置之后坐标仍是(0,0),所以不变,对于第二个元素2,对应坐标是(1,0),转置

2021-08-13 11:04:37 302

原创 91.柠檬水找零

文章目录一、题目描述二、解题思路三、代码演示一、题目描述在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。二、解题思路可以直接进行模拟,使用两个变量,一个记录5美元的张数,一个记录1

2021-08-13 11:01:31 311

原创 Tomcat启动之后控制台中文全是问号的问题

Tomcat启动之后控制台中文全是问号的问题一、问题描述中文全是问号二、解决方法找到本地Tomcat所在文件夹,conf——longging.properties文件,将它打开,然后回到程序中再运行,就解决啦:三、总结:这是我遇到的这种情况的解决方案,乱码产生原因有很多,希望可以帮助到大家。...

2021-08-08 20:58:44 2225

原创 90.种花问题

文章目录一、题目描述二、解题思路三、代码演示一、题目描述假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。二、解题思路输入的数组中不能有相邻的1,假设有这么个花坛,n=2;使用一个指针,从开始遍历,第

2021-08-07 22:09:24 412

原创 89.分发糖果

文章目录一、题目描述二、解题思路2.1 思路一:暴力求解2.2 思路二:两个数组+两次遍历三、代码演示3.1 暴力求解3.2 两个数组+两次遍历3.3 思路二代码优化一、题目描述老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?二、解题思路2.1 思路一:暴力求解先根据

2021-08-07 22:06:45 352

原创 88.下一个排列

文章目录一、题目描述二、解题思路三、代码演示一、题目描述实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。二、解题思路以排列123456为例,先一个个找比它的大的更大排列,即123465,继续往下列举:123546,13564,123645,123654,124356,123365,ok,先列举这么多,来分析一下:有没有发现下一个排列永远是调

2021-08-07 22:00:56 102

原创 87.汇总区间

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b二、解题思路题目分析,假设以示例一为例,nums=[0,1,2,4,5,7],区间包括,“0-2”

2021-08-07 21:57:49 179

原创 86.非递减数列

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。二、解题思路对于数组中只有一个元素,那肯定是非递减数列;当有两个元素时,可以有两种方案:方案一:nums[i-1] = nums[i]方案二:num[i] = nums[i

2021-08-07 21:54:32 159

原创 85.旋转数组

文章目录一、题目描述二、解题思路2.1 方案一:使用额外数组2.2 方案二:环状替换2.3 方案三:数组反转三、代码演示3.1 使用额外数组3.2 环状替换3.3 数组反转一、题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?二、解题思路2.1 方案一:使用额外数组以示例一为例,申请一个新的数组,用于存储旋转之后的数组,遍历每一个

2021-08-07 21:51:40 127

原创 84.除自身以外数组的乘积

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0LynjOvt-1628343493392)提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n)

2021-08-07 21:43:15 182 1

原创 83.一维数组的动态和(前缀和)

文章目录一、题目描述二、解题思路2.1 方法一:暴力求解2.2 方法二:动态规划三、代码演示3.1 代码演示一:暴力求解3.2 代码演示二:动态规划一、题目描述给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。二、解题思路2.1 方法一:暴力求解其实这道题可以用暴力解法也是可以的,首先初始化一个数组prefixSum用于存储前缀和,然后定义两个指针i和j:第一步:当i=0时,表示要计

2021-08-02 09:04:17 277

原创 82.盛最多水的容器

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。二、解题思路使用双指针,对撞指针,一个从左往右,一个从右往左遍历:面积的计算是高度乘以宽度,高度是两个数值中小的那一个,宽度是两个数值索引之间的距离。指针的移动通过比

2021-08-02 08:58:26 82

原创 81.验证回文串

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。**说明:**本题中,我们将空字符串定义为有效的回文串。二、解题思路首先理解一下什么是回文串,回文串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。那我们可以看出,对于一个回文串,将它从中间分割,第一个字符和最后一个字符相等,第二个字符和倒数第二个字符相等,以此类推。依然可以和我的81_反转字符串一样,使用对撞指针。注意一个

2021-08-02 08:54:46 268

原创 80.反转字符串

文章目录一、题目描述二、解题思路三、代码演示一、题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。二、解题思路这道题还是很简单的,根据题目描述,反转之后的数组,第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,以此类推。使用双指针,对撞指针的方式,一个从左往右遍历,一个从右

2021-08-02 08:52:05 434

原创 79.删除有序数组中的重复元素II

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:二、解题思路还里还是使用有双指针(快慢指针),这与我的16-删

2021-08-02 08:48:12 325

原创 78.移动零

文章目录一、题目描述:二、解题思路三、代码演示一、题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。二、解题思路使用双指针, 声明两个指针i和j,一个寻找0元素,一个寻找非0元素,然后做交换即可。第一步:初始化指针,指针i首先向后移动寻找非0元素:第二步:i和j指针对应的元素值交换,并且i和j都向后移动一位:依次类推,知道最后的元素遍历玩为止。这种双指针方法又称为快慢指针。吧三、代码演示class Solution { p

2021-08-02 08:42:19 68

原创 77.上升下降字符串

文章目录一、题目描述二、解题思路2.1 题目解读2.2 解题步骤三、代码演示一、题目描述给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后

2021-08-02 08:39:28 275

原创 76.查找常用字符

文章目录一、题目描述二、解题思路三、代码演示一、题目描述给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。二、解题思路本题有点类似于查找公共字符串的意思,以题中的示例1为例进行分析:第一步:首先分析字符串数组中的第一个字符串中的每个字符,记录每个字符的出现次数;第二步:分别统计第一个字符串中每个字符在其它字符串中

2021-07-30 13:01:26 133

原创 75.找到所有数组中消失的数字

文章目录一、题目描述二、解题思路二、代码演示一、题目描述给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。二、解题思路这道题可以使用我的74_数组中重复的数据中的思路二,加n的方法。下面通过分析来说明一下这个方法,还是先给出一个数组,下面两个是做对比用的。第一步:遍历第一个元素4,4对应的索引(一定要注意这里不是在数组中实际的索引)4-1=3;索引3在数组中对

2021-07-30 12:41:04 540

原创 36.两个数对之间的最大乘积差

文章目录一、题目描述二、解题思路三、代码演示一、题目描述两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) = 16 。给你一个整数数组 nums ,选出四个 不同的 下标 w、x、y 和 z ,使数对 (nums[w], nums[x]) 和 (nums[y], nums[z]) 之间的 乘积差 取到 最大值 。返回以这种方式取得的乘积差中的 最大值 。

2021-07-29 12:32:47 432

原创 74.数组中重复的数据

文章目录一、题目描述二、解题思路2.1 思路一: 使用负数代码演示2.2 思路二:加n代码实现一、题目描述给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?二、解题思路2.1 思路一: 使用负数对于一个数组nums:开始遍历每一个元素,假设遍历到第一个元素4的时候,说明4出现过一次了,那么怎么来记录这个出现一次的4呢?首先元素的范围是[1,

2021-07-29 12:26:54 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除