- 博客(87)
- 收藏
- 关注
原创 Leetcode 470
Leetcode 470解法一:7进制数据(等概率即可)rand7() + rand7 不是等概率,转换为7进制时候,就转换成为了等概率事件,class Solution {public: int rand10() { int result=0; do{ int rand0= rand7(); int rand2= rand7(); result = (rand2-1) * 7 + ran
2020-09-13 13:14:37
309
原创 树+ 动态规划
树+ 动态规划这种结局思路主要是 利用一个全局变量,然后加一个递归方法,递归方法求解初当前节点处满足题意的最大值情况,然后当前节点能够满足的最大值与目前得到的最大值做一个比较全局变量 Max调用递归方法调用递归左右节点的情况更新最大值的情况return 返回当前节点满足的情况路径最大和 124. Binary Tree Maximum Path Sumclass Solutio...
2019-06-16 13:42:48
384
原创 使用队列实现stack
两个队列实现一个stackq1只保持一个元素即可, 多余的转换到q2当中出队列元素,有两种情况,q1不为空, 直接出队列如果连续出队列 q1可能为空, 需要q2的部分元素放到q1当中去,说白了就是元素捣鼓来捣鼓去的问题即可核心事项将一个筒里面的元素捣鼓来捣鼓去一个队列实现一个stack没加入一个元素都是捣鼓捣鼓去就行,重置元素的基础顺序即可...
2019-05-23 16:45:10
306
原创 Leetcode 340 最长最多K个无重复字符的字符串长度
题目Given a string, find the length of the longest substring T that contains at most k distinct characters.For example, Given s = “eceba” and k = 2,T is “ece” which its length is 3.快慢指针 + HashMap一...
2019-05-02 15:54:45
1557
原创 59. 螺旋打印情况
i 代表一圈,j 从用来上下左右移动,主要是控制 i 与j 的参数关系就ok了 ,另一个是注意如何初始化从左上角到右上角while(j<n-i-1)从右上角到右下角while(j<n-i-1)从右下角到左下角while(j>i)从左下角到左上角while(j>i)class Solution { public int[][] ...
2019-03-24 20:20:18
138
原创 LeetCode之最值问题系列问题求解
最系列题目解析这类型题目的特点就是一个数组,或者字符串, 给的条件是连续或者不连续,解题的关键采用两个变量一个变量记录前面的条件,或者最后一个不满足题意的index,或者最小值, 比如股票题目当中j ,或者最大不重复字符串一个变量代表截止到处理到该位置处的最大结果值动态规划保存前面的计算结果利益最大买卖股票只能进行一次买卖的基本情况class Solution { ...
2019-03-03 21:50:59
321
原创 数组当中的第K大元素
一个没有排序数组当中的第K大元素,堆选择排序优化的选择排序class Solution { public int findKthLargest(int[] nums, int k) { if (nums == null || nums.length == 0 || k <= 0 || k > nums.length) { re...
2019-03-03 16:49:13
137
原创 全排列、子集合subset、目标和combation、树的路径和问题
主要的方法深度优先搜索,回溯算法宽度优先搜索是否有相同元素需要考虑等问题针对所给问题,确定问题的解空间:首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个(最优)解。确定结点的扩展搜索范围 for等一系列循环等问题以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。 判断减支情况int a[n]; try(int i){...
2019-03-03 16:33:47
319
原创 HashMap
自己设计一个HashMap采用桶+ 链地址法来实现一个HashMap,设计链表类设计桶类 ,包括一个头节点,head = new ListNode(-1,-1);hashmap , 桶类数组情况 ,ListNode[] buckets = new ListNode[], 基础数目就可以了,桶数组class ListNode { ListNode next; i...
2019-02-17 13:40:32
122
原创 字典序排序
主要是关于LeetCode当中的字典序排序问题386 Lexicographical Numbers440 字典序的第K小数字524 通过删除字母匹配到字典里面最长单词361 去除重复字母使得剩下的字典排序最小的情况386 字典序排序算法Given an integer n, return 1 - n in lexicographical order.For example, g...
2019-01-30 16:41:01
5315
原创 225.使用队列来模拟stack
题目解读使用两个队列来模拟stack 的push、pop()、 top(), isEmpty() 这些基础东西面试过程当中也是主要1.push()2.pop()3. top()4. isEmpty()面试的话主要实现上述几个接口就行了注意在java 队列当中是没有top()方法的,只有peek(),poll()在栈stack 当中才有那中top()队列的api 为poll(),...
2019-01-21 21:56:38
129
原创 239.最大滑动窗口
滑动窗口当中的最大值暴力解法扫描正个数组,O(n), 每个节点处需要进行扫描k个节点,所有时间复杂度为O(nk),class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if(k>nums.length) return new int[0]; ...
2019-01-21 13:19:49
224
原创 54. Spiral Matrix
顺时针打印矩阵主要是通过不断缩小矩阵的范围,抽象出来即可在开始只要每次缩短这个范围即可,主要是后连执行两边后的条件判断public class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> res = new ArrayList<I...
2018-12-30 16:54:25
111
原创 108. Convert Sorted Array to Binary Search Tree
题目将有序数组转换成为转换为平衡二叉排序树,利用二分法的基本情况例如下面这种基本情况解题主要是利用二分法,划分元素基本情况 ,在这里二分法要特别注意一个情况就是,如何判断low和high 的问题即可, 单独一个元素也是可以作为一个节点的, 所有low = high 才是最终的循环判断终止条件情况不用考虑大小问题,主要是有序数组, 平衡二叉搜索树中序遍历其实就是一个中序数组,还是c...
2018-12-22 00:14:41
132
原创 200. Number of Islands
求岛屿的数量求岛屿的数目情况主要有两种情况解析这道题目的本质问题其实是想就求,不相连的1 的块数目情况,在查找的过程当中, 相邻的1是当做只有一块的基本情况, 要去何必周边的1,情况, 就是标记为是岛屿就行了这种情况下,就是利用一个一直回溯下去的思想, 向四周进行一个基本的扩展就行了。public class Solution {private int n;private int...
2018-12-21 23:18:02
263
原创 448. Find All Numbers Disappeared in an Array
查找缺失的数据相似的题目查看如下链接的基本情况448 查找缺失的数据442. Find All Duplicates in an Array先解决查找数组当中相同的元素这道题目是442的,如何查找出数组当中出现多次的元素, 这就是桶排序算法数组当中的每个元素大小都是1<<x<<n ,只要注意这两个地方即可桶排序,归位处理遍历一遍, 将没有归位处理的元素进...
2018-12-18 15:34:45
132
原创 138. Copy List with Random Pointer
@[目录基本结构]((这里写自定义目录标题)描述复杂链表的复制, 首先理解什么叫做复杂链表, 复杂链表就是每个节点有两个指针, 一个指正是指向后面节点的, 另一个指针是指向链表当中任意一个节点的clone /copy a linked list with next and random pointersA linked list is given such that each node ...
2018-12-10 21:52:59
190
原创 103. Binary Tree Zigzag Level Order Traversal
描述主要是层次遍历相关的事情之字形打印二叉树的基本情况首先从左走到右,接下来一层从右走到左的基本情况关于这到题目也可以查看下102 层次遍历并保存每层的结果构成一个collectons102. Binary Tree Level Order Traversal层次遍历 BFS队列中的元素个数其实就是每层节点中的个数, 在while(循环体操作之前我们是可以)层次遍历中, 利用每层...
2018-12-08 11:13:24
110
原创 hadoop 学习笔记
基于hadoop的贝叶斯文本分类器实现过程贝叶斯基础理论(这个东西的项目概览)对这个工程总体的流程可以参考这个文献里面的做法即可参考文献1远程原件目录/user/coderlau/inputhadoop文件系统命令行主要是hdfs对于初学者而言,在这个地方主要是注意两个地方即可,一个是Linux 环境下本身的文件路径,和HDFS系统远程文件系统,这是两个不同的东西hadoop 执行...
2018-12-06 17:14:47
266
原创 226. Invert Binary Tree
反转二叉树4/ 2 7/ \ / 1 3 6 9Output:4/ 7 2/ \ / 9 6 3对左右进行一个反转情况递归做法还是套路做法对左边节点进行函数操作对右边节点进行函数操作swap 对调做法, root.left , root.rightclass Solution { public TreeNo...
2018-12-06 17:08:12
113
原创 387. First Unique Character in a String
暴力解法两个循环hashmap + 两个循环public int solution_1(String s){ if(s==null || s.length()==0){ return -1; } Map&lt;Character, Integer&gt; record = new HashMap&lt;&gt;(); ...
2018-12-06 10:07:31
159
原创 295. Find Median from Data Stream
题目描述如何求数据流的中位数情况,这个数据流可以随时添加数据,此题要找出数据流的中位数,数据流由无序整数组成,并且数据流是在变化的。数据流顺序是无序的,添加的顺序也是无序,但是求解是中位数的话就要保持有序的状态,所以基本Median is the middle value in an ordered integer list. If the size of the list is even,...
2018-11-25 21:28:01
140
原创 34. Find First and Last Position of Element in Sorted Array
描述iven an array of integers nums sorted in ascending order, find the starting and ending position of a given target value.Your algorithm’s runtime complexity must be in the order of O(log n).If the...
2018-11-25 16:10:02
263
原创 493. Reverse Pairs
主要是归并排序中的关键思想情况如何设计归并排序merger(int []nums, int lstart, int lend, int rstart, int rend){注意lstart 到lend 是有序的情况 , rstart 到rend 也是有序的情况}如果 lstart 大于 rstart的话,那么lstart 到lend 都是要比rstart 大的数,(在这个时候进行统计计数...
2018-11-24 13:08:18
218
原创 红黑树与AVL树的区别
文章目录红黑树与AVL树的区别红黑树的一个案列英文答案红黑树的高度问题红黑树的优点与AVL树的比较相同点使用红黑树为何能比AVL树高效的原因分析红黑树的应用领域java 集合类和c ++ STLLinux选择RBTree 还是 AVL参考链接红黑树与AVL树的区别红黑树的一个案列Root is always black.(根结点是黑的。)All NULL leaves are blac...
2018-11-14 11:58:32
3099
原创 114. Flatten Binary Tree to Linked List
114. Flatten Binary Tree to Linked List还是分为三部分的情况,假设分为root, root.left, root.right,假设这两边都是有序的情况,就是类似与于交换进行值即可的情况Efficient Without Additional Data StructureRecursively look for the node with no gran...
2018-11-11 21:41:58
220
原创 81. Search in Rotated Sorted Array II
31 Search in Rotated Sorted Array ll描述不包含相同的元素情况Input: nums = [4,5,6,7,0,1,2], target = 0Output: 4对有序数组进行一定的旋转,进行查找二分查找and双指针这是二分查找的变体,双指针的形式,low = 0, high = length-1;mid 中间分为两个部分形式nums[mid...
2018-11-08 20:36:57
220
原创 回文链表和链表reverse()
链接判断一个链表是否是回文字符串?快慢指针链表reverse考虑是偶数链表还是reverse以后都构造不包含头节点都结果链表其实跟我以前都思路是一样的想法,同样是采用头插入法和分开两个链表的做法情况public void reverse(ListNode head){ ListNode pre =null; while(head!=null){ ...
2018-10-22 20:05:44
176
原创 链表的公共节点
求链表的公共节点160. Intersection of Two Linked Lists先求出链表的长度, 让两个链表的长度一样的情况,然后逐步推进, 不等的话一直走下去, 直到走到相同的地方情况下如果没有公共公共节点的话,两个节点共同走到空节点,然后直接返回即可/** * Definition for singly-linked list. * struct ListNode ...
2018-10-20 16:15:13
182
原创 Idea intellij 如何创建多个Maven 模块进行协作?
第一:根工程先选择新建一个maven工程, 不打勾Create from archetype,直接选择next,填写总的工程名字这样就可以得到如下的项目删除src下面的文件比如现在的项目结构要做成如下形式LSwebadmincontrollerLS是总的项目, web, admin, controller 分别是三个并列maven子项目创建子maven 项目...
2018-10-17 21:57:39
237
原创 235. Lowest Common Ancestor of a Binary Search Tree
二叉搜索树节点的公共祖先还是老套路,将树分为三部分代码class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { //二分查找方法,首先是根节点处判断,两个节点是在根节点的两边,还是同样在左边,还是右边的情况 if(roo...
2018-10-17 20:59:02
146
原创 230. Kth Smallest Element in a BST
查找二叉搜索树的第K小节点利用bst的中序遍历的性质bst 中序遍历可以得到一个有序数组, 每次从stack中弹出一个元素,看k-- ,进行计数即可Inorder TraversalWe can inorder traverse the tree and get the kth smallest element. Time is O(n).solution1 中序遍历非递归写法/**...
2018-10-17 15:19:27
162
原创 Leetcode解题技巧总结
递归的出口和和参数不满足条件参数不满函数处理的条件,直接返回错误代码判断出口条件优先级队列//使用PriorityQueue实现大顶堆//PriorityQueue默认是一个小顶堆,然而可以通过传入自定义的Comparator函数来实现大顶堆。如下代码:private static final int DEFAULT_INITIAL_CAPACITY = 11;Priority...
2018-10-15 23:58:31
2512
原创 如何实现一个分布锁?
基本概念为何需要分布式锁?传统环境中的情况:在程序开发过程中不得不考虑的就是并发问题。在java中对于同一个jvm而言,jdk已经提供了lock和同步等。但是在分布式情况下,往往存在多个进程对一些资源产生竞争关系,而这些进程往往在不同的机器上,这个时候jdk中提供的已经不能满足。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案。在很多的场景中,...
2018-10-15 23:50:21
273
原创 55. Jump Game
贪心算法Jump Game IGiven an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position....
2018-10-15 23:47:16
141
原创 java中的异常
throw和throws的区别相同:都是用于做异常的抛出处理的。不同点:使用的位置: throws 使用在函数上,throw使用在函数内后面接受的内容的个数不同:throws 后跟的是异常类,可以跟多个,用逗号隔开。 (throws只声明异常类,不处理)throw 后跟异常对象。...
2018-10-14 17:38:55
74
原创 169. Majority Element
查重数组中出现次数大于n/2的数总体思路情况思路如下情况基础的过程总结Moore算法相同加一票;不同减一票;当票数减少到0为止,重选选定候选人,第一次候选人的票数初始化为1的情况代码基本步骤设置max_index = 0 , count=1, // 表示将第一数表示为选中的结果,表示作为选手的情况从第二个数开始,如果跟前面的最大数一直 nums[max_index], coun...
2018-10-14 15:04:34
120
原创 使用mac 终端登录腾讯云服务器
购买好云服务器后,在控制台尝试密钥后直接下载到本地在终端中执行以下命令行即可chmod 400 <下载的与云服务器关联的私钥的绝对路径>然后 直接输入 ssh 用户名@购买到云服务到地址比如我自己购买到 ubuntu的默认用户名是 ubuntu所以ssh ubuntu@119.xxx.xxx.xxx提示输入密码,输入密码购买云服务器成功后的生成的密码即可,该密码可...
2018-10-14 14:13:33
6638
1
原创 Leetcode 48. Rotate Image
48. Rotate Image对数组进行旋转,顺时针旋转90度的情况,比如下面的该种情况solution_1参考来源分为两步的情况首先是第一步的情况,先交换逆转行的情况,然后再 array[i][j] 和array[j][i] 进行对调即可代码void rotate(vector<vector<int> > &matrix) { rev...
2018-10-13 22:57:52
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人