leetcode
_房似锦_
活着
展开
-
leetcode 762. 二进制表示中质数个计算置位
10 -> 1010 (2 个计算置位, 2 是质数)11 -> 1011 (3 个计算置位, 3 是质数)12 -> 1100 (2 个计算置位, 2 是质数)13 -> 1101 (3 个计算置位, 3 是质数)14 -> 1110 (3 个计算置位, 3 是质数)9 -> 1001 (2 个计算置位,2 是质数)10-> 1010 (2 个计算置位,2 是质数)6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3 是质数)共计 4 个计算置位为质数的数字。原创 2022-11-07 15:58:06 · 229 阅读 · 0 评论 -
leetcode 1523. 在区间范围内统计奇数数目
第一种情况,当low和high都是奇数时,此时区间内奇数最多,比如low=3,high=7,区间为3,4,5,6,7, 奇数个数为3,也就是计算一共的个数(high-low+1),再除2加1。第二种情况就是low和high都是奇数,剩下的2中情况时low和high其中一个为奇数,这种和都是奇数时情况一样,所以都放在else中了。计算区间的奇数个数一共可以分为4种情况,一般的思路就是遍历,但时间复杂度是O(n),而这种方法的时间复杂度是O(1)。解释:3 到 7 之间奇数数字为 [3,5,7]。原创 2022-11-06 16:14:55 · 535 阅读 · 0 评论 -
leetcode 206. 反转链表
进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]链表中节点的数目范围是 [0, 5000]输入:head = [1,2]输出:[5,4,3,2,1]输入:head = []原创 2022-10-24 15:16:42 · 103 阅读 · 0 评论 -
leetcode 219. 存在重复元素 II
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j)原创 2022-10-14 20:25:31 · 182 阅读 · 0 评论 -
leetcode 202. 快乐数(哈希表)
「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为1,那么这个数就是快乐数。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/happy-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-10-14 19:45:38 · 661 阅读 · 0 评论 -
leetcode 1. 两数之和(哈希表)
一开始就在哈希表中找是否有 target-nums[i] 的元素,如果有,也就是迭代器没有走到最后,那么直接返回当前下标和哈希表中键值为 target-nums[i] 的value值,也就是 target-nums[i] 的下标;i=2时,9-7=2在哈希表中,此时迭代器也没有在末尾,所以执行 if 的语句,返回当前下标和哈希表中 target-nums[i] 的下标。i=0时,一开始是2,9-2=7 并不在哈希表里面,所以将{2,0}加入到哈希表中。假设nums中元素顺序为 {2,11,7,.15}原创 2022-10-14 16:46:48 · 119 阅读 · 0 评论 -
leetcode 19. 删除链表的倒数第 N 个结点(双指针应用)
用快慢指针可以先让快指针走n步,等快指针到达被删除的结点时,快慢指针再同时前进,指向下一个结点,当快指针到达最后一个结点时,判断条件为 fast->next==NULL ,退出循环,此时慢指针的位置就是要被删除的结点的前一个位置。当然,对于特殊情况我们肯定也要特殊考虑,比如只有一个结点时返回NULL就行了,如果要删除第一结点时,最后 fast 指针一定指向 最后一个结点的next,即 NULL。输入:head = [1,2,3,4,5], n = 2。输入:head = [1,2], n = 1。原创 2022-10-04 11:42:17 · 480 阅读 · 2 评论 -
leetcode 876. 链表的中间结点
给定一个头结点为 head 的非空单链表,返回链表的中间结点。判断条件fast是否为空是当链表中结点为偶数个时,fast->next判断是当链表中结点为奇数个时。给定链表的结点数介于 1 和 100 之间。如果有两个中间结点,则返回第二个中间结点。这个在链表中真的很有用,必须掌握。输入:[1,2,3,4,5,6]输入:[1,2,3,4,5]输出:[3,4,5]输出:[4,5,6]原创 2022-10-02 13:18:20 · 171 阅读 · 0 评论 -
leetcode 557. 反转字符串中的单词 III
给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。输入:s = “Let’s take LeetCode contest”输出:“s’teL ekat edoCteeL tsetnoc”在原有字符串上找到一个单词就进行一次反转。输入: s = “God Ding”s 包含可打印的 ASCII 字符。s 中的所有单词都用一个空格隔开。s 不包含任何开头或结尾空格。输出:“doG gniD”s 里 至少 有一个词。原创 2022-10-02 11:29:49 · 422 阅读 · 0 评论 -
leetcode 189. 轮转数组
erase函数的返回的是指向被删除元素的下一个元素的迭代器,所以执行erase()后要把迭代器减1,指向前面一个,执行循环+1的时候就可以恢复到正常位置了。输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]输出: [5,6,7,1,2,3,4]输出:[3,99,-1,-100]原创 2022-10-01 19:25:07 · 136 阅读 · 0 评论 -
leetcode 26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k。找到不同的就存到前面的位置。原创 2022-10-01 13:52:18 · 140 阅读 · 0 评论 -
leeetcode 面试题 17.19. 消失的两个数字
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?以任意顺序返回这两个数字均可。刷穿leetcode。原创 2022-09-26 09:37:37 · 566 阅读 · 0 评论 -
leetcode 1025. 除数博弈
如果一开始n为偶数,爱丽丝可以一直选择1,这样鲍勃每次遇到的数都是奇数,并且其因子也是奇数,相减之后变成偶数,这样爱丽丝可以一直是偶数,最后到2时,爱丽丝获胜。如果一开始是奇数,爱丽丝一开始选完之后,差为偶数,鲍勃也想赢,所以鲍勃只要一直选1,鲍勃就会赢,爱丽丝则输。选出任一 x,满足 0 < x < n 且 n % x == 0。解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。),如果n是偶数,n的约数可以是奇数也可以是偶数(12的约数。如果n是奇数,n的约数都是奇数(如21的约数。原创 2022-09-25 19:38:44 · 185 阅读 · 0 评论 -
leetcode 292. Nim 游戏
你和你的朋友,两个人一起玩Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。原创 2022-09-25 19:19:45 · 142 阅读 · 0 评论 -
leetcode 670. 最大交换
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。原创 2022-09-14 00:12:14 · 123 阅读 · 0 评论 -
leetcode 剑指 Offer 10- II. 青蛙跳台阶问题(斐波那契数列的变形)
从第 n-1 到达 第 n 阶就跳一次就够了,所以只有一种方法,而从第 n-2 到 第 n 阶可以一次跳2阶或者一次跳一阶跳2次,后者(一次跳一阶的方法)已经算在 从 n-1 到第 n 阶的方法里了。其实和 斐波那契数列 的思想是一样的,到达第n阶台阶的方法有 f(n-1) 和 f(n-2) 种方法。一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。所以从 n-2 到 第 n 阶只有唯一的跳2阶的方法了。所以 f(n) = f(n-1)+f(n-2).....原创 2022-08-04 22:01:18 · 186 阅读 · 0 评论 -
leetcode 剑指 Offer 10- I. 斐波那契数列(动态规划做法)
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。F(N) = F(N - 1) + F(N - 2), 其中 N > 1.其实只需要3个值就够了,将这3个值不断地更新,就可以算出第n个元素是多少。用递归一般会超时,尽管这道题 n 最大为100,但还是超时。时间复杂度:O(n).......原创 2022-08-04 21:28:25 · 1410 阅读 · 0 评论 -
leetcode 006. 排序数组中两个数字之和
numbers 的下标 从 0 开始计数 ,所以答案数组应当满足 0原创 2022-08-04 09:46:24 · 151 阅读 · 0 评论 -
leetcode 125. 验证回文串
从所给字符串2端向中间移动,在这过程中如果出现对应位置不相等的情况时就说明不是回文串,返回false,如果每个对应位置的字符相等,那么返回true。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。输入: “A man, a plan, a canal: Panama”解释:“amanaplanacanalpanama” 是回文串。说明:本题中,我们将空字符串定义为有效的回文串。解释:“raceacar” 不是回文串。输入: “race a car”...原创 2022-08-03 15:18:48 · 163 阅读 · 0 评论 -
leetcode 1837. K 进制表示下的各位数字总和
给你一个整数 n(10 进制)和一个基数 k ,请你将 n 从 10 进制表示转换为 k 进制表示,计算并返回转换后各位数字的 总和。转换后,各位数字应当视作是 10 进制数字,且它们的总和也应当按 10 进制表示返回。解释:34 (10 进制) 在 6 进制下表示为 54。5 + 4 = 9。解释:n 本身就是 10 进制。1 + 0 = 1。输入:n = 10, k = 10。输入:n = 34, k = 6。...原创 2022-08-03 09:51:27 · 96 阅读 · 0 评论 -
leetcode 899. 有序队列
当k>=2时,经过有限次的操作,一定可以变成升序,因为我们每次在前k个中都可以选择最大的那个放在最后,这样实际操作起来很麻烦,但和sort排好序的结果是一样的,所以直接sort返回即可。当k==1时,将原字符串看成一个环,从开头到结尾每次都将第一个字符放在末尾,保存这些字符中的字典序最小的情况,直接模拟。在第一步中,我们将第一个字符(“b”)移动到最后,获得字符串 “aacab”。在第一步中,我们将第一个字符(“c”)移动到最后,获得字符串 “bac”。输入:s = “cba”, k = 1。...原创 2022-08-03 09:10:47 · 118 阅读 · 0 评论 -
leetcode 461. 汉明距离
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。示例 1:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0) ~~~~~~ ↑ ~~~ ↑上面的箭头指出了对应二进制位不同的位置。提示:0 ...原创 2022-08-02 17:24:01 · 1325 阅读 · 0 评论 -
leetcode 剑指 Offer 15. 二进制中1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为‘1’的个数(也被称为汉明重量).)。解释输入的二进制串00000000000000000000000000001011中,共有三位为‘1’。输入n=11(控制台输入00000000000000000000000000001011)输入必须是长度为32的二进制串。思路一&和>>(使用。思路二使用n&(n-1)时间复杂度O(n)空间复杂度O(1)......原创 2022-08-02 16:36:38 · 250 阅读 · 0 评论 -
leetcode 268. 丢失的数字(异或!!)
首先将从0到n的所有值都异或一遍,这样算是将所有的值都记录一遍,再对数组中的每一个值异或,因为同一个数异或2次对原值没有影响,即a^b^b=a。解释n=3,(n为数组中元素个数)因为有3个数字,所以所有的数字都在范围[0,3]内。先从0一直加到n,记录所有数都出现时的总和sum,再将数组中的每个值都相加he,他们的差值(sum-he)即为没有出现的数字。输入nums=[9,6,4,2,3,5,7,0,1]输入nums=[3,0,1]...原创 2022-08-02 09:56:38 · 206 阅读 · 0 评论 -
leetcode 136. 只出现一次的数字(异或!!)
一开始令intans=0,遍历整个数组都进行一次异或运算,由于出现2次的元素异或2次之后仍然是本身,最后只剩下异或1次的元素,而且由于0和任何数异或都为那个数本身,所以最后只剩下出现一次的数字。给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。输入[4,1,2,1,2]输入[2,2,1]...原创 2022-08-02 07:58:16 · 107 阅读 · 0 评论 -
leetcode 剑指 Offer 58 - II. 左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。输入s=“lrloseumgh”,k=6。输入s=“abcdefg”,k=2。输出“umghlrlose”输出“cdefgab”...原创 2022-08-01 21:42:15 · 84 阅读 · 0 评论 -
leetcode 2119. 反转两次的数字
给你一个整数num,反转num得到reversed1,接着反转reversed1得到reversed2。解释反转num得到625,接着反转625得到526,等于num。解释反转num得到81,接着反转81得到18,不等于num。非负整数进行两次反转操作不变的条件即为该整数为0或该整数结尾不含0。解释反转num得到0,接着反转0得到0,等于num。输入num=526。输入num=0。...原创 2022-08-01 20:52:11 · 179 阅读 · 0 评论 -
leetcode 16.01. 交换数字(不使用临时变量交换2个数的值)
编写一个函数,不用临时变量,直接交换numbers=[a,b]中a与b的值。使用加减解决(但相加之后数据有可能溢出)输入numbers=[1,2]使用^(异或)运算符。a的二进制表示形式为1010。b的二进制表示形式为0001。b^=a得出b为1010。a^=b得出a为0001。异或记住一个口诀同0异1。的运算,a变为1011。...原创 2022-08-01 16:16:46 · 139 阅读 · 0 评论 -
leetcode 326. 3 的幂
传入的参数类型是int型,有些人可能会说1.0/9是3的-2次方,也是3的幂运算,但是如果输入1.0/9,函数就会强制类型转化为int,实际上到函数里运算的是0,。3的次方数肯定要大于0,还有就是3的次方数除3之后余数一定为0(1除外),如果最基本的因子3都不能整除,那肯定不是3的次方数。给定一个整数,写一个函数来判断它是否是3的幂次方。如果是,返回true;整数n是3的幂次方需满足存在整数x使得n==3。这个函数判断的只是大于0的数是否是3的幂。......原创 2022-08-01 11:41:16 · 130 阅读 · 0 评论 -
leetcode 231. 2 的幂
给你一个整数n,请你判断该整数是否是2的幂次方。如果是,返回true;否则,返回false。如果存在一个整数x使得n==2x,则认为n是2的幂次方。n-1的最高位为0,剩下的低位都是1。(因为二进制的规则是满2进1)如果是2的次方,那么用二进制表示就只有其中一位为1,其余为0。解释24=16。......原创 2022-08-01 11:17:45 · 89 阅读 · 0 评论 -
leetcode 16. 数值的整数次方(快速幂+递归/迭代)
实现pow(x,n),即计算x的n次幂函数(即,x。解释2-2=1/22=1/4=0.25。不得使用库函数,同时不需要考虑大数问题。输入x=2.00000,n=10。输入x=2.00000,n=-2。输入x=2.10000,n=3。输出1024.00000。输出9.26100。输出0.25000。......原创 2022-08-01 10:18:00 · 172 阅读 · 0 评论 -
leetcode 072. 求平方根
给定一个非负整数x,计算并返回x的平方根,即实现intsqrt(intx)函数。解释8的平方根是2.82842…,由于小数部分将被舍去,所以返回2。如果平方根不是整数,输出只保留整数的部分,小数部分将被舍去。正数的平方根有两个,只输出其中的正数平方根。.........原创 2022-07-31 20:45:29 · 472 阅读 · 0 评论