![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
Flying_Home
心有猛虎,细嚼蔷薇。
展开
-
【36-40】剑指offer
36.题目描述 输入两个链表,找出它们的第一个公共结点。 思路:1.求出两个链表的长度;2.将长的链表移动(两链表长度之差个结点);3.同时移动两个链表,如果发现两个链表有相交的点,则返回交点的位置,否则返回NULL。具体实现见代码: #include usingnamespace std; structListNode { int val; str原创 2016-08-22 19:55:28 · 180 阅读 · 0 评论 -
【51-55】剑指offer
51.题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 #include #include using namespace std; class Solution { public: vector原创 2016-08-22 20:07:38 · 236 阅读 · 0 评论 -
【46-50】剑指offer
46.题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下原创 2016-08-22 20:06:06 · 205 阅读 · 0 评论 -
【41-45】剑指offer
41.题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和原创 2016-08-22 20:04:38 · 235 阅读 · 0 评论 -
【1-5】剑指offer
1. 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 class Solution { public: bool Find(vector<vector<int> > array,int target) { ...原创 2016-08-14 12:30:58 · 218 阅读 · 0 评论 -
【5-10】剑指offer
6.题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 class Solution { public: int minNumberInRotateAr...原创 2016-08-14 12:32:29 · 210 阅读 · 0 评论 -
【11-15】剑指offer
11. 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 可以采用移位的方式,也可以采用如下的方式 //该方式较好 class Solution { public: int NumberOf1(int n) { int count = 0; while(n) {原创 2016-08-14 12:45:03 · 194 阅读 · 0 评论 -
【16-20】剑指offer
16.题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 考略问题需全面:当其中一个链表为NULL时的处理 当都为NULL时的处理 采用递归实现 #include using namespace std; struct ListNode {原创 2016-08-22 19:41:59 · 218 阅读 · 0 评论 -
【21-25】剑指offer
21题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 注意:解题目的逻辑 #include #include #include原创 2016-08-22 19:46:14 · 192 阅读 · 0 评论 -
【26-30】剑指offer
26.题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 注意:采用递归实现。注意指向指针的指针的使用。 #include using namespace std; struct TreeNode { intval; structTreeNode *left;原创 2016-08-22 19:48:20 · 221 阅读 · 0 评论 -
【31-35】剑指offer
31.题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 思路:假设输入的数据为21345 first:代表第一位数据 numFirstDigit:代原创 2016-08-22 19:53:27 · 178 阅读 · 0 评论 -
【56-60】剑指offer
56.题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 #include using namespace std; struct ListNode { int val; struct ListNode *next; Li原创 2016-08-22 20:12:22 · 284 阅读 · 0 评论