- 博客(133)
- 收藏
- 关注
原创 二分查找---总结
这种平衡版的一个缺点是,如果第一次循环的m处就是要找的key,那么还会继续循环。原因是Java的二进制符号问题,在Java中的数值的二进制的首位表示符号位,要注意的是,在取mid的时候,我们利用的是算数右移操作而不是简单是除以二。我们这个函数的目的是为了返回是否找到,而不是为了获取找不到而插入的下标!指的是,如果找不到要找的元素key,那么将该key插入到数组中的位置.这里我们的左闭右开区间造成了区间左侧和右侧元素的比较次数不平均的问题。的含义,原来是参与比较的右边界,现在变成了不参与比较的右边界。
2023-04-03 09:29:40 544
原创 leetcode-704.二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例2:通过提示我们可以看出数组元素都是正数且没有重复元素,属于最基本的二分查找考察或者
2023-04-03 09:28:26 285
原创 leetcode-35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 的算法。示例2:示例3:由题目中要求的时间复杂度O(logn)可以知道要用二分查找
2023-04-03 09:25:20 241
原创 leetcode-128.最长连续序列
找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。给定一个未排序的整数数组。
2022-09-07 09:23:55 153
原创 leetcode-1.两数之和(哈希表解决)
给定一个整数数组 `nums` 和一个整数目标值 `target`,请你在该数组中找出 和为目标值 `target` 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。
2022-09-05 09:22:48 369 1
原创 leetcode-239.滑动窗口最大值
给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值。
2022-09-05 08:58:16 138
原创 leetcode-23.合并K个升序链表
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例2:示例3:在解决这道题之前,我们需要先知道怎样合并两个有序链表,在许多数据结构的书里一般都会有合并方法,假设有两个有序链表a和b首先,我们需要一个head来保存我们合并后的链表头(可以是头结点,也可以是第一个有效结点)其次,我们需要一个tail指针来保存合并链表下一个即将插入元素位置的前一位置,再用两个指针aPtr bPtr保存a和b的剩余未插入部分的首结点接着,我们只需让aPtr和bPtr
2022-08-08 18:18:10 486
原创 leetcode-260.只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?...
2022-08-05 17:35:24 122
原创 leetcode-137.只出现一次的数字 II
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。
2022-08-05 13:08:11 248 1
原创 leetcode-693.交替位二进制数
*给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。**
2022-08-03 12:04:24 122
原创 leetcode-318.最大单词长度乘积
给你一个字符串数组words,找出并返回的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回0。
2022-07-31 09:56:04 210
原创 leetcdoe-342. 4的幂
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4^x示例2:示例3:思路:当一个数字n是2的整数次方时:那么它的二进制一定是这样的形式(只有一位是1)n-1的二进制就是 则可以得到: ==> 这个数是2的整数次方那么如果n也是4的整数次方呢?那么二进制中的1的位置一定得是奇数位(且只有这一个),例如 题目中n的范围是-2^31 ...
2022-07-28 12:00:53 143
原创 leetcode-136.只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?
2022-07-28 11:29:22 131
原创 leetcode-190.颠倒二进制位
颠倒给定的32位无符号整数的二进制位。提示请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在Java中,编译器使用二进制补码记法来表示有符号整数。因此,在示例2中,输入表示有符号整数-3,输出表示有符号整数-1073741825。...
2022-07-28 11:18:17 110
原创 leetcode-461.汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给你两个整数x和y,计算并返回它们之间的汉明距离。
2022-07-27 16:26:19 89
原创 leetcode-470.用 Rand7() 实现 Rand10()
给定方法rand7可生成[1,7]范围内的均匀随机整数,试写一个方法rand10生成[1,10]范围内的均匀随机整数。你只能调用rand7()且不能调用其他方法。请不要使用系统的方法。每个测试用例将有一个内部参数n,即你实现的函数rand10()在测试时将被调用的次数。请注意,这不是传递给rand10()的参数。......
2022-07-27 15:53:48 323
原创 leetcode-202.快乐数
编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐数。如果n是快乐数就返回true;不是,则返回false。...
2022-07-25 12:56:04 136
原创 leetcode-169.多数元素
给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大于⌊n/2⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2022-07-25 11:36:43 377
原创 leetcode-462.最少移动次数使数组元素相等
给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加1或者减1。
2022-07-25 10:49:50 402
原创 leetcode-238.除自身以外数组的乘积
给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。...
2022-07-24 17:45:03 155
原创 leetcode-168.Excel表列名称
给你一个整数,返回它在Excel表中相对应的列名称。例如A->1B->2C->3…Z->26AA->27AB->28…
2022-07-23 11:00:53 151
原创 leetcode-382.链表随机节点
给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点被选中的概率一样。实现Solution使用整数数组初始化对象。从链表中随机选择一个节点并返回该节点的值。链表中所有节点被选中的概率相等。...
2022-07-22 17:52:58 206
原创 leetcode-528.按权重随机选择
给你一个下标从0开始的正整数数组w,其中w[i]代表第i个下标的权重。请你实现一个函数pickIndex,它可以随机地从范围内(含0和w.length-1)选出并返回一个下标。选取下标i的概率为。例如,对于w=[1,3],挑选下标0的概率为1/(1+3)=0.25(即,25%),而选取下标1的概率为3/(1+3)=0.75(即,75%)。...
2022-07-22 11:56:02 201
原创 leetcode-384.打乱数组
给你一个整数数组nums,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是等可能的。实现使用整数数组nums初始化对象重设数组到它的初始状态并返回返回数组随机打乱后的结果。...
2022-07-22 11:13:00 127
原创 leetcode-326. 3的幂
给定一个整数,写一个函数来判断它是否是3的幂次方。如果是,返回true;否则,返回false。整数n是3的幂次方需满足存在整数x使得n==3^x。
2022-07-21 20:30:57 177
原创 leetcode-415.字符串相加
给定两个字符串形式的非负整数num1和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如BigInteger),也不能直接将输入的字符串转换为整数形式。
2022-07-21 20:20:44 154
原创 leetcode-312.戳气球
有n个气球,编号为0到n-1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。戳破第i个气球,你可以获得枚硬币。这里的i-1和i+1代表和i相邻的两个气球的序号。如果i-1或i+1超出了数组的边界,那么就当它是一个数字为1的气球。求所能获得硬币的最大数量。...
2022-07-19 20:14:40 308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人