4 秦怀

尚未进行身份认证

我要认证

道之所在,虽千万人吾往矣。

等级
TA的排名 1w+

Mac 安装Homebrew慢的问题解决

一开始安装,在官网上的命令:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"特别的慢,而且执行着就很容易断开,连接不上。所以需要换一种方法。打开终端,到自己喜欢的文件夹,执行以下命令,把install文件拉取下来,并且改名为brew_install.shcurl -fsSL https://raw.githubusercontent.com/Homebr

2020-09-15 01:13:58

剑指Offer(29)--最小的k个数

文章目录题目描述思路与解析题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路与解析下面方法的思路比较简单,但是比较取巧,直接借助了最大顶堆,也就是上面的元素是最大的。如果里面个数超过k的话,则弹出堆顶的元素。import java.util.ArrayList;import java.util.PriorityQueue;public class Solution { public ArrayList

2020-07-27 23:30:16

剑指Offer(28)--数组中出现次数超过一半的数字

文章目录题目描述思路与解析题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路与解析这里主要使用了多数投票法,先取第一个数字,出现次数是1,遍历后面的数字,如果相同则加1,如果不同则减1,结果如果为0,则把当前的数字更新,而且次数更新为1。直到最后,则可以获取到出现次数最多的数字,再次遍历数组,统计该数字出现的次数,如果次数大于长

2020-07-26 23:28:34

剑指Offer(27)--字符串的排序

文章目录题目描述输入描述:思路以及解析题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路以及解析使用回溯,通过交换字符实现。import java.util.ArrayList;import java.util.Comparator;public class Solu

2020-07-26 23:24:14

剑指Offer(26)--二叉搜索树和双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路以及解答主要是使用递归,设置一个head和end,head只在第一次设置值,后面就是将end的right指向当前node,将当前node的left指向end,把end指向当前的node。class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; publ

2020-07-26 23:22:42

剑指Offer(25)--复杂链表的复制

文章目录题目描述思路以及解法题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路以及解法一共有三种写法,第一种就是下面的,先复制next链路上的节点。然后复制random节点。复制random节点的时候,采取的是遍历的做法。class RandomListNode { int label;

2020-07-26 23:20:05

剑指Offer(24)--二叉树中和为某一值的路径

文章目录题目描述思路以及解答题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路以及解答主要是借助队列,将遍历的节点放进队列中,到叶子节点之后计算和,然后再回溯到上面一层的时候,将队列最后一个元素取出来,放进当前的元素。import java.util.ArrayList;import java.util.ArrayList;import java.util.LinkedLis

2020-07-26 23:03:20

剑指Offer(23)--二叉搜索树的后序遍历序列

文章目录题目描述思路以及解答题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路以及解答注意是二叉搜索树,如果是后续遍历的话,那么应该最后一个元素是中间元素mid,前面的元素可以分为两部分,一部分比mid小,另一部分全部比mid大。如果破坏这个原则,那么就应该输出No。 public boolean VerifySquenceOfBST(int[] sequence) { if

2020-07-26 23:00:06

剑指Offer(22)--从上往下打印二叉树

文章目录题目描述思路以及解答题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路以及解答主要的思路是借助队列,先把当前元素放进队列,然后不断取出元素,取出元素的时候,同时处理其左子树和右子树,将其放到队列中。直到队列是空的。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/**public class TreeNode { int val = 0; Tr

2020-07-26 22:56:44

剑指Offer(21)--栈的压入、弹出序列.md

文章目录题目描述思路以及解析题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路以及解析主要是模拟这个过程,先把压栈的挨个压入栈中,每压入一个,则找弹出顺序队列的当前元素是否与栈顶元素相等,相等则弹出。直到最后数据应该是空的,则表明两个顺序是

2020-07-26 22:53:38

剑指Offer(20)--包含min函数的栈

文章目录题目描述思路以及解答题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路以及解答主要是两个栈,一个存储所有元素的datas stack,一个存储最小值 mins stack。push一个元素的时候,都需要push进datas stack,但是push进入mins stack需要满足条件:当前的mins stack是空的,直接放入。或者当前的mins stack的栈顶元素大于或者等于push进来的值。pop一个元素的时候,如果栈

2020-07-26 22:48:31

剑指Offer(19)--顺时针打印矩阵

文章目录题目描述思路与解析题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.思路与解析这道题难度在于如何正确地处理边界情况,下面我们使用的是不断缩小矩阵上,下,左,右四个边界的方法。首先定义一个up(上边界为0),down(下边界为matrix.length - 1),lef

2020-07-26 22:47:27

剑指Offer(18)--二叉树的镜像

文章目录题目描述思路与解答题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路与解答使用递归,直接将左子树反转,右子树反转,交换即可。值得注意的是,反转后的结果需要先保存,左右两个都反转之后,才能赋值。/**public

2020-07-18 11:55:53

剑指Offer(17)--树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路先找到相同的根节点,然后递归判断左子树和右子树即可。public static boolean HasSubtree(TreeNode root1, TreeNode root2) { // 只要一个为null,则返回false if (root1 == null || root2 == null) { return false; } // 从当前根节

2020-07-18 11:50:33

剑指Offer(16)--合并两个排序的链表

文章目录题目描述思路以及解析题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路以及解析思路比较清晰,首先创建一个-1节点的新链表,然后两个链表都从头开始,循环到直到一个链表遍历到最后,谁的节点小,就加入新的链表后面。然后遍历两个链表剩下的元素,这些元素肯定比另一个链表的所有元素都大或者相等,直接加入新的链表后面即可。 public ListNode Merge(ListNode list1,ListNode list2) {

2020-07-18 02:03:50

剑指Offer(15)--反转链表

文章目录题目描述思路与解答题目描述输入一个链表,反转链表后,输出新链表的表头。思路与解答首先,使用循环解答,不断把指向下一个的指针,指向前面的。假设链表是1->2->3->4,那么执行一次循环里面的内容的图示如下:直到head==null的时候,返回first即可。 public static ListNode ReverseList(ListNode head) { if (head == null) { return head

2020-07-17 22:18:18

剑指Offer(14)--链表中倒数第k个节点

文章目录题目描述思路以及解析题目描述输入一个链表,输出该链表中倒数第k个结点。思路以及解析思路比较清晰,那就是前后指针,先让第1个指针先走k步,然后第2个指针开始走,而且两个指针一起走,直到第一个指针走到最后的位置。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solut

2020-07-12 23:17:03

剑指Offer(13)--调整数组顺序使奇数位于偶数前面

文章目录题目描述思路与解答题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路与解答用空间换时间做法,就是新建一个数组,copy一份,先计算出奇数的个数,也就是能够知道第一个偶数应该放在数组的哪一个位置,然后再遍历一次,依次放到对应的位置即可。public class Solution { public void reOrderArray(int[] nums)

2020-07-12 23:16:14

剑指Offer(12)--数值的整数次方

文章目录题目描述思路以及解法题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。思路以及解法首先题目中的double类型应该不能拆解,但是int类型的整数exponet我们可以做点文章,我们平时求次方的时候,假设有个x的4次方,我们通常是求出一个x的平方数x2,然后两个x2相乘就可以得出x^4。这里思路也一样,使用递归,同时考虑边界条件。如果指数是负数,则先取反,最后取结果的倒数即可。P

2020-07-12 23:15:30

剑指Offer(11)--二进制中1的个数

文章目录题目描述思路以及解法题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。思路以及解法首先说一个错误的解法,很多人可能会想到,那就是不断对2取余数。但是这种做法有个致命的缺陷,那就是忽略了负数,负数使用补码表示的时候,是取反之后加一,而且public class Solution { public int NumberOf1(int n) { int num = 0; while (n != 0) {

2020-07-12 23:14:37

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)