
剑指Offer
飘来荡去、、
这个作者很懒,什么都没留下…
展开
-
二叉树与链表
一、二叉树转链表思路一:递归版本思路是先利用DFS的思路找到最左子节点,然后回到其父节点,把其父节点和右子节点断开,将原左子结点连上父节点的右子节点上,然后再把原右子节点连到新右子节点的右子节点上,然后再回到上一父节点做相同操作。步骤如下:首先找到最左节点3 1 / \ 2 5 / \ \3 4 6断开父节点2和4的连接 把3连...原创 2019-02-25 13:58:40 · 3169 阅读 · 0 评论 -
字符串的排列
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。分析先确定字符串中第i个位置上的字符,剩余的字符递归进行全排列。例如,确定第一个位置上的字符为a,那么继续求bc的全排列就可以找到所有以a开头的字符串;确定第一个位置上的字符为b,求ac的全排列;确定第一个位置...原创 2019-02-19 13:17:14 · 233 阅读 · 0 评论 -
约瑟夫环
方法一:使用列表模拟游戏过程import java.util.ArrayList;public class Solution { public int LastRemaining_Solution(int n, int m) { if (n == 0 || m == 0){ return -1; } Array...原创 2019-02-18 11:22:05 · 144 阅读 · 0 评论 -
滑动窗口的最大值
方法一:暴力求解import java.util.ArrayList;import java.util.Arrays;public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { ArrayList<Integer> r...原创 2019-02-12 10:34:21 · 179 阅读 · 0 评论 -
判断平衡二叉树
方法一:依次判断每个结点的左右子树高度,使用一个获取二叉树深度的递归函数:public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if (root == null){ return true; } int coun...原创 2019-02-09 20:44:15 · 195 阅读 · 0 评论 -
二叉树的下一个结点
思路一:因为每个结点都包含指向父节点的指针,所以可以先找到父节点,然后再进行中序遍历,找到给点结点的下一个结点。import java.util.ArrayList;/*public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; T...原创 2019-02-09 10:37:08 · 190 阅读 · 0 评论 -
和为S的连续正数序列
方法一:普通方法import java.util.ArrayList;public class Solution { public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { ArrayList<ArrayList<Integer> >...原创 2019-02-03 17:50:15 · 120 阅读 · 0 评论 -
数组中只出现一次的数字
方法一:使用HashMapimport java.util.ArrayList;import java.util.HashMap;import java.util.List;//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果public class Solution { public void FindNumsAppea...原创 2019-02-02 21:01:25 · 130 阅读 · 1 评论 -
两个链表的第一个公共结点
方法一:import java.util.ArrayList;import java.util.List;public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { List<Integer> list = new Ar...原创 2019-02-02 18:55:28 · 124 阅读 · 1 评论 -
丑数
首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,那么我们从1开始乘以2,3,5,就得到2,3,5三个丑数,在从这三个丑数出发乘以2,3,5就得到4,6,10,6,9,15,10,15,25九个丑数,我们发现这种方法会得到重复的丑数,而且我们题目要求第N个丑数,这样的方...原创 2019-02-01 22:31:11 · 300 阅读 · 0 评论 -
链表中环的入口结点
思路一:借助一个list遍历链表,将遍历过的结点都放入list中,当遇到重复结点时,说明找到了环的入口public ListNode EntryNodeOfLoop(ListNode pHead) { ArrayList<ListNode> list = new ArrayList<>(); while (pHead != ...原创 2019-03-20 11:56:13 · 147 阅读 · 0 评论