leetcode之数学
explore翔
安徽某985小硕,记录日常学习生活,欢迎大家交流指教。
展开
-
杨辉三角
先来一个简单的。给一个数字,返回二维数组的杨辉三角;vector<vector> res(n);n为给定的数字;for(int i=0;i<n;i++){res[i].resize(i+1);//给每一行确定个数;res[i][0]=1;res[i][i]=1;//第一个和最后一个都是1;for(int j=1;j<i;j++){res[i][j]=res[i-1][j]+res[i-1][j-1];}}return res;再来一个进阶的。给定一个索引,输原创 2021-04-19 18:55:26 · 133 阅读 · 0 评论 -
172.阶乘后的零
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。这题如果直接结算阶乘,那么时间复杂度肯定不是logn级别。我们分析一下,要产生0,最小的必须是25=10会产生0,也就是说要关注阶乘中的数有多少2和5的因子,2的因子只要是偶数就行,那么关键在于因子5的数有几个。我么知道,每隔5个数就会有一个原创 2021-04-15 19:45:56 · 73 阅读 · 0 评论 -
171&&168 Excel表列转换和名称
给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...这看起来很复杂,其实就是一个26进制转换成10进制,只不过用字母代替一部分数字。class Solution {public: int titleToNumber(string columnTitle) { int res = 0; for(int i原创 2021-04-15 19:26:46 · 145 阅读 · 0 评论 -
67.二进制求和00--关于字符转换成数字和字符串首尾添加字符的区别
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”直接在字符串上操作,最后要判断进位是否为0;class Solution {public: string addBinary(string a, string b) { int al=a.size()-1; int bl=b.size()-1; int cnt=0;原创 2021-04-13 18:08:18 · 133 阅读 · 0 评论 -
7.整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321对于这题,注意的是我们的32位是十进制的表示,对于二进制来说,三十二位是二进制的,所以需要判断是否溢出了、对于这种大整数,我最先想到的就是先转换成字符串,再转成数字。对于数字转字原创 2021-04-12 16:00:48 · 262 阅读 · 0 评论