剑指 offer
题与注意点
两片空白
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 43. 1~n 整数中 1 出现的次数(为什么是大数这边数的个数乘以小数边数的个数)
剑指 Offer 43. 1~n 整数中 1 出现的次数https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。暴力解法:运用动态规划,从1到n,计算出每一个数i中1的个数countone,dp[ i ]=dp[ i-1 ]+counto.原创 2021-07-29 10:00:41 · 98 阅读 · 0 评论 -
剑指offer 32-II 从上到下打印二叉树
第一次做到用两维数组返回,一开始还不知道怎么申请空间。两维数组看成一维数组,里面元素是一维数组,先申请一维数组空间,再申请元素一维数组里元素的空间。解题思路:返回值为一个层序遍历的二维数组,*returnsize行数,** returnColumnSizes列数用一个数组承装。首先动态开辟二维数组空间,列数空间,因为还不知道列数,先不开辟里面元素一维数组空间。创建一队列,利用层序遍历思想,先将根节点入队,当队列不为空就要将队列里的结点保存到返回的二维数组中。这里可以求出列数:等于队列尾指针减头指.原创 2021-06-14 16:24:05 · 99 阅读 · 3 评论 -
力扣剑指off 56-I数组中数字出现次数
此题为 一个整型数组 nums里除一个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)的变形,解法:所有数异或,就得到了只出现一次的数。上面这题求出现一次的两个数解题思路:如果像上面一样将所有数异或后得到了出现一次两个数异或的值,现在想法就是要把这两个数如何分开找出来。我们可以这样:在出现一次的两个数异或的值的二进制中找到随便一位为1的位数,比如是第n位,然后在原数组中,将所有数中第n位为1的放在一个数组中,将第n位为0的放..原创 2021-06-06 18:56:39 · 172 阅读 · 3 评论 -
字符串左旋用C语言实现
代码:char* reverseLeftWords(char* s, int n){ int len=strlen(s); int i=0; char *m=(char *)malloc(sizeof(char)*(len+1)); char *str=m; for(i=n;i<len;i++){ *m=*(s+i); m++; } for(i=0;i<n;i++){ //m[len-n+.原创 2021-05-14 07:33:59 · 174 阅读 · 0 评论