自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 剑指offer31 ——整数中1出现的次数(从1到n整数中1出现的次数)

剑指offer31 ——整数中1出现的次数(从1到n整数中1出现的次数)求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。这道题抛开暴力解法不提是真的难,至少对我来说做这道题首先要知道的“常识”:1~10的个位1出现的次数是11~100的十位

2020-05-15 20:17:39 105

原创 剑指offer30 ——连续子数组的最大和

剑指offer30 ——连续子数组的最大和HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)解法一:暴力法,从头遍历,

2020-05-15 15:05:44 132

原创 剑指offer29 ——最小K个数题解

剑指offer29 ——最小K个数题解剑指offer29题:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解法一:最简单的解法,先排序,再选前k个。ps:sort排序使用的是改进的快排,数据量大时采用QuickSort快排算法,分段归并排序。一旦分段后的数据量小于某个门槛(16),为避免QuickSort快排的递归调用带来过大的额外负荷,就改用Insertion Sort插入排序。如果递归层次过深,还会改用HeapSort堆排

2020-05-13 21:11:13 135

原创 剑指offer28——数组中出现次数超过一半的数字

剑指offer28——数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:首先sort排序,如果有超过一半的次数的值的话那中间的值肯定是我们要找的值,再遍历它看看有没有超过一半class Solution {public: int MoreThanHalfNum_Solution(vector<i

2020-05-13 18:19:20 163

原创 剑指offer27——字符串的排列

剑指offer27——字符串的排列输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。开始的想法:通过递归两两交换达到目的。class Solution {public: vector<string> Permutation(string str) { vector<string> result; if(str.le

2020-05-13 16:57:43 96

原创 剑指offer26——二叉搜索树与双向链表

剑指offer26——二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。简单的想法:由于二叉搜索树的中序遍历是顺序的,把结果放入数组中后再把左右孩子连接起来就完成了/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N

2020-05-12 21:59:44 129

原创 复杂链表的复制

复杂链表的复制输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)大多数用的是在每个节点后复制一个兄弟节点,这样random就能定位到,但是中间链表会反复的连接拆开,代码太多,用哈希映射关系,可以轻松找到random对应位置/*struct RandomListNode { int label; stru

2020-05-12 20:45:17 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除