leetcode简单题
本专栏用于记录刷题中遇到的简单题,且值得多刷的题目。
USTB-zmh
北京科技大学计算机在读硕士一枚…
展开
-
【leetcode】231、2的幂
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果存在一个整数 x 使得 n == 2^x ,则认为 n 是 2 的幂次方。因此我们可以考虑使用位运算,将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 0 即可。下面介绍两种常见的与「二进制表示中最低位」相关的位运算技巧。一个数 n 是 2 的幂,当且仅当 n 是正整数,并且 n 的二进制表示中仅包含 1 个 1。因此,如果 n 是正整数并且 n & (-n) = n,那么 n 就是 2 的幂。解释:24 = 16。原创 2024-08-09 10:53:15 · 190 阅读 · 0 评论 -
【leetcode】258、各位相加
数根又称数字根(Digital root),是自然数的一种性质,每个自然数都有一个数根。对于给定的自然数,反复将各个位上的数字相加,直到结果为一位数,则该一位数即为原自然数的数根。通过实例可以发现,按顺序来都是9个一组,那么我们是不是可以通过取余的方法来实现呢?计算数根的最直观的方法是模拟计算各位相加的过程,直到剩下的数字是一位数。利用自然数的性质,则能在 O(1) 的时间内计算数根。给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。这道题的本质是计算自然数 num 的数根。原创 2024-08-08 15:27:33 · 93 阅读 · 0 评论 -
1512.【leetcode】好数对的数目
假设:5第一次出现,那么将5存入到map则为(5,1),再次出现5,那么5的好数对的数目就多了1次,此时value+1=2,则为(5,2),再次出现5,那么第三次出现5会让好数对的数目增加两次,因为前面已经出现了两次,并且第三次出现的5的坐标一定比前两次大,因此此时5所产生好数对的数目为3,以此类推。解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始。输入:nums = [1,2,3,1,1,3]输入:nums = [1,1,1,1]原创 2024-08-07 15:51:57 · 260 阅读 · 0 评论