LeetCode题解——数学问题(二) ゞ 浴缸里的玫瑰 2023-02-13 14:50 127阅读 0赞 ### 文章目录 ### * * 七进制数 * 数字转换为十六进制数 * Excel表列名称 * 阶乘后的零 * * 解法 * * 推荐阅读 ## 七进制数 ## 给定一个整数,将其转化为7进制,并以字符串形式输出。 示例 1: 输入: 100 输出: “202” 示例 2: 输入: -7 输出: “-10” class Solution { public String convertToBase7(int num) { if (num == 0) { return "0"; } StringBuilder sb = new StringBuilder(); boolean flag = num < 0; if (flag) { num = -num; } while (num > 0) { sb.append(num % 7); num /= 7; } String ret = sb.reverse().toString(); return flag ? "-" + ret : ret; } } ## 数字转换为十六进制数 ## 给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。 不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。 示例 1: 输入: 26 输出: “1a” 示例 2: 输入: \-1 输出: “ffffffff” class Solution { public String toHex(int num) { if (num == 0) { return "0"; } char[] map = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; StringBuilder sb = new StringBuilder(); while (num != 0) { sb.append(map[num & 15]); num >>>= 4; } return sb.reverse().toString(); } } ## Excel表列名称 ## 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ... 示例 1: 输入: 1 输出: “A” 示例 2: 输入: 28 输出: “AB” 示例 3: 输入: 701 输出: “ZY” class Solution { public String convertToTitle(int n) { if (n == 0) { return ""; } n--; return convertToTitle(n / 26) + (char) (n % 26 + 'A'); } } ## 阶乘后的零 ## 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。 ### 解法 ### 尾部的 0 由 2 \* 5 得来,2 的数量明显多于 5 的数量,因此只要统计有多少个 5 即可。 对于一个数 N,它所包含 5 的个数为:N/5 + N/52 + N/53 + …,其中 N/5 表示不大于 N 的数中 5 的倍数贡献一个 5,N/52 表示不大于 N 的数中 52 的倍数再贡献一个 5 …。 class Solution { public int trailingZeroes(int n) { return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5); } } -------------------- #### 推荐阅读 #### * [机器学习资料汇总][Link 1] * [吴恩达《机器学习》视频、作业、源码][Link 2] * [106页《Python进阶》中文版正式发布][106_Python] * [李航《统计学习方法》第二版完整课件][Link 3] * [机器学习数学全书,1900页PDF下载][1900_PDF] -------------------- ![format_png][] [Link 1]: https://mp.weixin.qq.com/s/3nOkk_Yt9D7Qp1WaWEjyZQ [Link 2]: https://mp.weixin.qq.com/s/dErZNtBYbVA7ItPm7T_HIw [106_Python]: https://mp.weixin.qq.com/s/_WEuuxj-QgihijjLz7NJ9g [Link 3]: https://mp.weixin.qq.com/s/xah47OWuu8ahAUa1aFFo4Q [1900_PDF]: https://mp.weixin.qq.com/s/9BuyhdwuHiHH3ksVUe44ZQ [format_png]: https://imgconvert.csdnimg.cn/aHR0cDovL3dhcmRzZXB0ZW1iZXIuY2x1Yi9Gc2lzMkxhbzF6UkEtUnBic1RFREEwX3owNHdi?x-oss-process=image/format,png
相关 LeetCode题解——动态规划(二) 文章目录 303. 区域和检索 - 数组不可变 缓存 413. 等差数列划分 常数内存的动态规划 客官°小女子只卖身不卖艺/ 2023年07月06日 11:54/ 0 赞/ 68 阅读
相关 LeetCode题解--回溯算法(二) 文章目录 46. 全排列 回溯算法 47. 全排列 II 回溯算法 77. 组合 àì夳堔傛蜴生んèń/ 2023年06月20日 06:25/ 0 赞/ 39 阅读
相关 LeetCode题解——贪心算法(二) 文章目录 435. 无重叠区间 按起点排序的贪心算法 统计移除区间数 统计保留区间数 忘是亡心i/ 2023年06月06日 07:49/ 0 赞/ 24 阅读
相关 LeetCode题解——广度优先搜索(二) 127. 单词接龙 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下 青旅半醒/ 2023年05月30日 10:50/ 0 赞/ 38 阅读
相关 LeetCode题解——数学问题(二) 文章目录 七进制数 数字转换为十六进制数 Excel表列名称 阶乘后的零 解法 ゞ 浴缸里的玫瑰/ 2023年02月13日 14:50/ 0 赞/ 128 阅读
相关 LeetCode题解——随机刷题(二) 文章目录 114. 二叉树展开为链表 寻找前驱节点 221. 最大正方形 动态规划 301 素颜马尾好姑娘i/ 2022年12月07日 01:53/ 0 赞/ 219 阅读
相关 LeetCode系列题解之 二叉搜索树系列题解 文章目录 二叉搜索树 前言 两个基础的框架部分 具体示例 简单实现版: \[ ╰半橙微兮°/ 2022年11月25日 13:08/ 0 赞/ 159 阅读
相关 Leetcode 题解 - 数学 Leetcode 题解 - 数学 204. 计数质数 统计所有小于非负整数 `n` 的质数的数量。(素数的定义很简单,如果一个数如果只能被 1 和它本身整除,那么这 Love The Way You Lie/ 2022年10月17日 00:54/ 0 赞/ 202 阅读
还没有评论,来说两句吧...