leetcode
木良Duncan
这个作者很懒,什么都没留下…
展开
-
357. 计算各个位数不同的数字个数
题目:给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。本题主要通过找寻数学规律:当i=0时,只有0一个数字 ,dp[i] = 1;当i=1时,0到9九个数字,dp[i] = 9;当i=2时,如示例中,dp[i] = 81;当i>2时,新加入的数字,与 i - 1 位数字不一样,dp[i] = dp[i-1]*(10-(i-1));最后的答案位dp数组之和。public int countNumbersWithUniqueDigits(i原创 2021-10-23 20:32:23 · 83 阅读 · 0 评论 -
66. 加一
题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。可以将1也看做一个元素只有一个的数组,即加一可以转化为两个数组相加。分别定义两个指针,从右往左遍历,模拟加法运算。public int[] plusOne(int[] digits) { List<Integer> list = new ArrayList<Integer>原创 2021-10-21 08:19:13 · 47 阅读 · 0 评论 -
199. 二叉树的右视图
题目:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。本题采用层序遍历,取每一层的最右边元素。public List<Integer> rightSideView(TreeNode root) { List<Integer> list = new ArrayList<Integer>(); Queue<TreeNode> queue = new LinkedLis原创 2021-10-20 12:40:52 · 48 阅读 · 0 评论 -
376. 摆动序列
题目:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。子序列 可以通过从原始序列中删除一原创 2021-10-20 09:25:41 · 43 阅读 · 0 评论 -
Leetcode476:数字的补数
Leetcode476:数字的补数1.首先讲num循环除以二,求得num的二进制位数2.取相应位数位全一的数字temp3.将num与temp进行异或运算,即为补数。public int findComplement(int num) { int count = 0; long temp = num; while(temp!=0){ temp = temp / 2; count++; }原创 2021-10-18 10:32:27 · 57 阅读 · 0 评论