码迷,mamicode.com
首页 >  
搜索关键字:剑指offer c++    ( 3728个结果
每日算法题 | 剑指offer 链表专题 (11) 复杂链表的复制
重磅干货,第一时间送达题目复杂链表的复制题目要求输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路把复制的结点链接在原始链表的每一对应结点后面把复制的结点的random指针指向被复制结点的random指针的下一个结点拆分成两个链
分类:编程语言   时间:2020-12-21 11:15:13    阅读次数:0
每日算法题 | 剑指offer (1) 二维数组的查找
题目二维数组的查找题目要求在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路题目要求中可以发现有两个突破口:1.从行看,从左往右依次递增从列看,从上往下依次递增(1)当我们从第一行第一个元素开始比较的时候,会发现无论是往右还是往下都是递增,比较没有意
分类:编程语言   时间:2020-12-21 10:58:51    阅读次数:0
每日算法题 | 剑指offer (2) 数组中重复的数字
重磅干货,第一时间送达题目数组中重复的数字题目要求在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路题目要求中可以发现,需要找出数组中重复的数字,长度为n的数组中必定存在元素是重复
分类:编程语言   时间:2020-12-21 10:58:38    阅读次数:0
每日算法题 | 剑指offer (3) 构建乘积数组
重磅干货,第一时间送达题目构建乘积数组题目要求给定一个数组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]。不能使用除法。解题思路为了方便理解题目,下面举个例子A=[1,2,3,4]B=[234,134,124,123]如果可以用除法的话:那就比较容易了所以不能使用除法,那就只能从乘法
分类:编程语言   时间:2020-12-21 10:58:24    阅读次数:0
每日算法题 | 剑指offer 链表专题 (4) 从尾到头打印链表
重磅干货,第一时间送达题目从尾到头打印链表题目要求输入一个链表的头结点,从尾到头反过来打印出每个结点的值解题思路要想从尾到头遍历链表,首先需要做的是倒转链表,再进行遍历。该题思路:创建一个空列表,用来存储链表中的值,最后将列表逆序输出下面我们来举个例子:使用栈的情况:题目要求,从尾到头遍历单链表。也就是第一个遍历到的节点要最后一个输出,最后一个遍历到的节点第一个输出。这就是典型的“后进先出”,由此
分类:编程语言   时间:2020-12-21 10:58:09    阅读次数:0
每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点
重磅干货,第一时间送达题目链表中倒数第k个节点题目要求输入一个链表的头结点,从尾到头反过来打印出每个结点的值解题思路为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。当时,从链表结点的定义可以看出本题中的链表是单向链表,单向链表的结点只有从前往后的指针而没有从后往前的指针,因此这种思路行不通,它只适用于双向链表。思路:看到本题我们很自然的一个想法是从尾结点往前倒退k步,但是
分类:编程语言   时间:2020-12-21 10:57:50    阅读次数:0
每日算法题 | 剑指offer 链表专题 (7) 链表中环的入口结点
重磅干货,第一时间送达题目链表中环的入口结点题目要求给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路先看一张图,首先A是起点,C是环的入口点,B是指针的相遇点既然要相遇,那必然是两个指针的相遇。那他的快慢程度如何确定?我们假设快指针fast一次走2步,慢指针slow一次走1步,每次拉开的差距就是1步,由于我们知道这个链表是个环,那么这样快指针fast一定可以赶上s
分类:编程语言   时间:2020-12-21 10:57:28    阅读次数:0
每日算法题 | 剑指offer 链表专题 (8) 删除链表中重复的结点
重磅干货,第一时间送达题目删除链表中重复的结点题目要求在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5处理后为1->2->5解题思路一开始觉得哇这题目好简单,不过是找到需要删除的节点,然后跳过该节点就行了。思路A:新建一个哈希表,由于链表是有序的,将所有的
分类:编程语言   时间:2020-12-21 10:57:02    阅读次数:0
每日算法题 | 剑指offer 链表专题 (9) 合并两个有序链表
重磅干货,第一时间送达题目合并两个有序链表题目要求输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。如输入1->3->52->4->6输出1->2->3->4->5->6解题思路可以把链表当作一个链式数组去对待,那么这道题目就有点像归并排序的思想了代码实现Python:#-*-coding:utf-8-
分类:编程语言   时间:2020-12-21 10:56:45    阅读次数:0
剑指 Offer 11. 旋转数组的最小数字
//二分查找法 class Solution { public int minArray(int[] numbers) { //定义左、右边界 int left = 0; int right = numbers.length - 1; while(left < right){ //中间的元素 int ...
分类:编程语言   时间:2020-12-18 12:13:52    阅读次数:2
3728条   上一页 1 ... 11 12 13 14 15 ... 373 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!