自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 对称的二叉树 leecode java

题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 此题主要是要想明白什么是对称的二叉树。 使用递归的方式主要需要注意的是对比的方式,分为两步: 1:比较左孩子的左孩子与右孩子的右孩子 2:比较右孩子的左孩子和左孩子的右孩子 /** * Definition for a binary tree node. * public class TreeNode { * int val; * ...

2020-07-04 14:59:49 107

原创 面试题03. 数组中重复的数字 java

此题使用java set即可快速解决问题,在此省略那种算法。着重记录下使用数组排序(非常规排序)方式: 以 [2, 3, 1, 0, 5, 4, 3,5]为例: i=0 num[i]=2 num[num[i]]= 1 交换:2 和1 (将2赶走放到他该在的位置) 13205435 i=0 num[i]=1 num[num[i]]= 3 交换:1 和3 (1也不该在这里,将1赶走放到他该在的位置) 31205435 i=0 num[i]=3 num[num[i...

2020-06-14 11:50:48 67

原创 中序遍历的下一个节点 java

import java.util.*; public class Solution { public TreeLinkNode GetNext(TreeLinkNode pNode) { ArrayList<TreeLinkNode> pArray = new ArrayList<>(); TreeLinkNode par = pNode; while(par.next!=null){ p...

2020-06-07 18:43:57 176

原创 leecode 230. 二叉搜索树中第K小的元素 java

中序遍历,每次中序都让全局计数器--,减到0的时候就是结果 class Solution { int res = 0; int n; public int kthSmallest(TreeNode root, int k) { n=k; travel(root,k); return res; } public void travel(TreeNode root,int k){ if (roo...

2020-06-07 15:59:38 81

原创 leecode 237. 删除链表中的节点 java

这个题是脑筋急转弯么。。还说怎么head没传进来 两种方法 复制下一节点到当前node,删除下一节点,(手动狗头) 复制后面所有节点 删除最后一个节点 1方法就两句 node.val=node.next.val; node.next=node.next.next; 2方法: class Solution { public void deleteNode(ListNode node) { ListNode cur=node; while(cur!=n...

2020-06-07 14:48:06 100

原创 leecode 82. 删除排序链表中的重复元素 II java

题解: 双指针法,左指针用来记录重复元素之前的节点,右指针用来找到最后一个重复节点,具体如下: class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode dummpy = new ListNode(); dummpy.next=head; dummpy.val=-1; ListNode l=dummpy; ...

2020-06-07 14:18:18 105

原创 leecode 83. 删除排序链表中的重复元素 java

遍历法: 每次遇到下一个节点与当前节点值相同则执行cur.next=cur.next.next;直至所有重复节点被移除,再执行cur=cur.next; class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode cur = head; while(cur!=null && cur.next!=null) { if(cur.val == cur.next....

2020-06-07 11:22:24 116

原创 面试题57 - II. 和为s的连续正数序列 java 双指针

题解: 使用滑动窗口,左边界i,右边界j,左右边界只会往右不会往左。 下面以查找target=9为例: 每次找到结果之后左边界收缩,继续搜索。 class Solution { public int[][] findContinuousSequence(int target) { int i=1; int j=1; int sum=0; ArrayList<int[]> res=new Ar...

2020-06-06 15:56:05 54

原创 面试题42. 连续子数组的最大和 java

题解: 贪心算法,每次轮询分为三步: 如果之前的子序列和小于1,就需要扔掉,因为如果序列全都是正数的话一直加到结尾就是最大值了,有负数就要扔掉(或最小化)负数对于最大子序列和的影响。 计算本次子序列和subSum=subSum+cur 查看最大子序列和是否需要更新为目前序列和 对于序列 {-2,1,-3,4,-1,2,1,-5,4} 的轮询示例: 当前轮询 cur 之前和 subSum 目前和 subSum 最大子序列和 maxSum -2 0 -2 ...

2020-06-06 12:00:20 96

原创 两数之和 JAVA

题目: 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 题解: 轮询时成功条件:另一个加数(sum-轮询的数)不在hashmap里,且另一个加数不是本身。 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer,Intege...

2020-06-05 15:44:22 60

原创 leecode 20. 有效的括号 java

第一次做的时候还以为是需要左括号入栈,右括号判断是否栈最顶端是与当前的匹配即pop即可,最终返回栈是否是empty 鹅 简直是傻 其实只需要考虑右括号是否与栈顶匹配,不匹配直接就返回false即可。 class Solution { public boolean isValid(String str) { if(str.length()==0){ return true; } Map<Character, Char.

2020-05-28 22:24:35 69

原创 判断链表是否回文 Java

这题感觉细节比较多 比如链表要从中间节点那里开始反转 找到的中间节点是 n/2+1个节点 最终对比头尾指针时,偶数情况下只需要比较左边指针等于右边指针即可,奇数情况下相当于左边指针多走一步,需要判断右边指针不能等于空 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }

2020-05-28 11:20:48 97

原创 快速排序 堆排序 java

快速排序: package dudongdong; import java.util.Arrays; public class QuickSort { public static void main(String[] arges) { QuickSort qs=new QuickSort(); Integer[] arr={15,12,19,4,5,4,9,14}; Integer n = arr.length; qs.quickSort(arr,0,n-1); } publ.

2020-05-24 20:19:36 77

原创 208. 实现 Trie (前缀树) JAVA版本

想了想这玩意儿不就是个26叉树嘛。。 class Trie { public Trie[] childrens = new Trie[26]; public boolean isEnd; /** Initialize your data structure here. */ public Trie() { } /** Inserts a word into the trie. */ public void insert(Stri...

2020-05-18 13:37:48 74

原创 leecode 14. 最长公共前缀 简单题 JAVA

class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length==0){ return ""; } String str0 = strs[0]; for(String s: strs){ int i = 0; // System.out.print...

2020-05-18 10:39:31 86

原创 leecode 169. 多数元素 JAVA

一道简单题。。。 class Solution { public int majorityElement(int[] nums) { int n = nums.length; int xx=0; HashMap<Integer,Integer> hm=new HashMap<Integer,Integer>(); for (Integer x:nums){ hm.put(x,hm...

2020-05-17 22:05:31 188

原创 面试题40. 最小的k个数 JAVA版本 堆排序 优先队列

class Solution { public int[] getLeastNumbers(int[] arr, int k) { int n = arr.length; for (int i =n/2-1;i>=0;i--){ heapify(arr,n,i); } int[] x= new int[k]; for (int i=0;i<k;i++) { x[i].

2020-05-17 20:48:45 96

原创 二叉树的镜像 JAVA

题解: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public TreeNode mirrorTree(TreeNode root) { ...

2020-05-17 15:19:25 76

原创 面试题 04.05. 合法二叉搜索树 JAVA版本

题目: 题解: 在需要取出左孩子和右孩子的题目中,终止条件除了 root == null 还需要考虑 root.left 和root.right ===null ~ 二叉排序树是不可以有相同节点的,等号不要忘记~~ /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tre.

2020-05-17 14:55:53 157

原创 遍历二叉树

BFS遍历二叉树 public void printTree(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); System.out.println(root); while(!queue.isEmpty()) { TreeNode node = queue.poll(); if (node == null) { continue;

2020-05-17 10:26:28 134

原创 生成一个二叉树(用来本地刷题。。)

class Newtree { public Newtree lc; public Newtree rc; public char data; public Newtree root; public Newtree(Newtree l, Newtree r, char data) { lc = l; rc = r; this.data = data; } public Newtree...

2020-05-16 21:35:43 109

原创 判断平衡二叉树 JAVA 版本

判断二叉树是否平衡,就是将每个节点看作一个以此节点为root的子树,分别判断是否平衡~ 是否平衡的标准是两个子树高度相减的绝对值<1~ 高度的求法是两个子树的高度较大值+1~ 这是一道简单的题,却没想到默写起来坑坑巴巴~ 真是伤心~ 仔细想想还是自己递归没有掌握熟练~ 多多练习吧~ public boolean isBalance(Newtree root) { if(root==null) { return true; } if (Math.abs(high(root.

2020-05-16 21:34:31 89

原创 有序矩阵中第K小的元素 JAVA版本 二分法

题目: 题解: 这里的二分法与常规的二分法有一些小区别: 左右两边的数字使用的是数组值而不是索引 每一次边界收缩判断的不是数值的大小,而是找到小于中位数的数字个数再与k相比 package dudongdong; public class MatrixKmin { public static void main(String args[]) { Integer m2[][] = { {1,5,9}, {10,11,13}, {12,13,15}}; i.

2020-05-16 16:07:17 159

原创 矩阵中的路径 JAVA回溯解法

package dudongdong; import java.awt.print.Printable; public class dudongdongdong { // public int rows; // public int cols; // public int rowCount; public static void main(String[] args) { char[] matrix = {'a','b','c','e','s','f'...

2020-05-16 10:29:31 130

原创 视频转yuv格式小记

找到一个简洁好用的工具,下载地址:http://www.onlinedown.net/soft/529651.htm使用方法: 进入YUVMaker目录,打开CmdTool.bat,这是一个运行控制台可执行程序console.exe的批处理脚本 右键单击CmdTool.bat点击编辑,修改CmdTool.bat中的视频源文件,输出的yuv文件的路径,宽,高并保存,示例: @echo on con

2017-08-01 15:58:10 1128 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除