剑指offer
【江的福AC万物】
这个作者很懒,什么都没留下…
展开
-
牛客 Linux专项
1、怎样更改一个文件的权限设置?chomd2、缺省的Linux系统中,从后台启动进程,应在命令的结尾加上哪个符号? &3、文件exer1的访问权限为rw-r–r--,现要增加所有用户的执行权限和同组用户的写权限,命令为:chomd a+x,g+w exer1 或者 chomd 755 exer13题解析:文字设定法chmod [who] [+ | - | =] [...原创 2020-03-26 17:42:15 · 611 阅读 · 0 评论 -
剑指offer之 二叉搜索树与双向链表
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。题目中的排序划重点,既然要排序,我们就要联想到二叉树的性质,即左子树都小于根结点,右子树都大于等于根结点。所以就是 根结点的前驱是左子结点,左子结点的后继是根结点。还有中序遍历的遍历方式正好与需要的遍历方式所契合。因此我们就可以在中序遍历的遍历过程中,改变指针的指向,来达到最终的效...原创 2020-03-24 22:07:28 · 67 阅读 · 0 评论 -
剑指offer-把数组排成最小的数(list 的元素排序)
直接开门见山吧。有很多时候我们要将一些元素存进list中,并且需要根据它的一些属性排序。这时候我们就有两种方式。1、继承comparable,重写其中的compareTo方法。重写compareTo方法时,因为参数为object,所以需要先将object强转成对应的类型。2、实现Comparator接口,重写public int compare(Object o1, Object o2)...原创 2020-03-22 20:47:47 · 149 阅读 · 0 评论 -
剑指offer~复杂链表的复制(Java)
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)害~ 这不是一个好的方法。单纯记录一下,并且学习一下别人的思路。首先,参数为一个pHead,要求我们能够复制链表。我们先来看看其他大佬的做法(转自牛友chancy)逻辑很...原创 2020-03-21 08:35:41 · 137 阅读 · 0 评论 -
顺时针打印矩阵(Java)
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:首先顺时针打印矩阵,大家肯定会能想到会有几个个特殊的点,我们就可以通过这这几个特殊点,来实现打印。很丑对吧...原创 2020-03-18 10:44:29 · 226 阅读 · 0 评论 -
树的子结构(Java)
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。思路:两棵树,要判断B是否是A的子树,就要先在A中找到B的根结点,找到根结点才能依次判断它的子树是否一致。因此递归需要满足的需求是:遍历A树,在结点的值相等时,能判断子树结构是否一致。不相等时,返回false。但是一个递归无法满足即遍历了A又判断子树结构。因此需要另一个自定义函数来判断根结点...原创 2020-03-18 10:03:53 · 93 阅读 · 0 评论 -
合并两个排序的链表(Java)
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:要合并且排序,我们可以用递归。既然要递归,我们就需要思考它的出口。出口1:当list1=null,返回 list2.出口2: 当list2=null,返回list1.这两个出口同时又保证了当两个链都为null时,返回null;递归的判断条件:因为要实现不减排序,因此需要比较...原创 2020-03-18 09:43:16 · 79 阅读 · 0 评论 -
反转链表(JAVA)
题目描述输入一个链表,反转链表后,输出新链表的表头。思路:想象一个链表,想反转的话,就是说要将每一个结点的next变成它的上一个结点。在这个过程中,我们会遇到几个问题。1、表头没有上一个结点。解决方法:定义一个新的结点pre。开始的时候head指向pre。2、当head指向pre时,原指向会丢失。解决方法:再定义一个新结点next。每一次反转,next先到该结点的next。可保证结...原创 2020-03-18 09:29:11 · 99 阅读 · 0 评论 -
链表中倒数第k个结点(JAVA)
题目描述输入一个链表,输出该链表中倒数第k个结点。思路:要输出倒数第k个,就会联想到栈的特性。所以这道题我们可以将链表存进栈中,然后用pop方法返回倒数第k个结点。import java.util.Stack;public class Solution { public ListNode FindKthToTail(ListNode head,int k) { ...原创 2020-03-18 08:55:06 · 90 阅读 · 0 评论 -
重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { * int val; * ...原创 2020-03-14 15:14:35 · 68 阅读 · 0 评论 -
操作序列的次数
已知一个奇怪的队列,这个队列中有n个数,初始状态时,顺序是1,2,3,4,…n,是1-n按顺序排列。这个队列只支持一种操作,就是把队列中的第i号元素提前到队首(1<i<=n),如有4个元素,初始为1,2,3,4,可以将3提前到队首,得到3,1,2,4 。 现在给出一个经过若干次操作之后的序列,请你找出这个序列至少是由原序列操作了多少次得到的。import java.util.*;...原创 2020-03-14 15:07:14 · 161 阅读 · 0 评论