- 博客(23)
- 问答 (1)
- 收藏
- 关注
原创 摩尔投票算法
用来寻找数组中超过一半此书出现的元素核心思想就是抵消,如果某个元素出现次数超过数组总数量的一半,那么数组中两两不相同的数进行抵消,最后留下的元素就是所求元素。class Solution {public: int majorityElement(vector<int>& nums) { int major, counts = 0, n = num...
2020-03-04 23:36:35
183
原创 Leetcode 300 最长上升子序列
这道题有两种解决方法:一种是动态规划的方法,时间复杂度为O(N^2);一种是动态规划+二分查找的方法,时间复杂度为O(NlogN) 。我先贴一下第一种使用动态规划的方法,这也是大家第一眼能想到的办法:class Solution { public int lengthOfLIS(int[] nums) { if(nums.length==0) return 0; ...
2020-03-03 18:25:52
205
原创 Leetcode 23 合并K个排序链表
class Solution { public ListNode mergeKLists(ListNode[] lists) { PriorityQueue<ListNode>queue=new PriorityQueue<>(new Comparator<ListNode>() { public int comp...
2019-08-12 17:09:55
158
原创 数组中重复的数字
最开始的做法: 空间复杂度O(n)import java.util.*;public class Solution { // Parameters: // numbers: an array of integers // length: the length of array numbers // duplication: (...
2019-06-26 16:03:38
113
原创 nodejs安装
1、在官网下载压缩包2、# tar xf node-v10.9.0-linux-x64.tar.xz // 解压3、# cd node-v10.9.0-linux-x64/ // 进入解压目录4、# ./bin/node -v // 执行node命令 查看版本v10.9.05、ln...
2019-06-13 16:08:13
259
原创 链表相关题目
链表操作是我非常不擅长的一种题型,所以如果遇到有相关的题目就记一下。Leetcode 206/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */...
2019-05-13 15:11:47
203
原创 KNN的数据插补方法总结
sklearn中的KNN在缺失值填补中的用法参考链接:K近邻填补缺失值如果缺失值是离散的,使用K近邻分类器,投票选出K个邻居中最多的类别进行填补;如果为连续变量,则用K近邻回归器,拿K个邻居中该变量的平均值填补。涉及到的参数: KNN的K;weights-样本的权重,使用distance表示,distance为用样本间的距离(默认欧式距离),样本间距离越近越”重要“过程:如有下图这样一段数...
2019-05-07 14:03:53
10660
原创 Leetcode 32 最长有效括号 Java
Leetcode 32 最长有效括号因为我真的很不擅长做DP题,所以想偷懒能不用就不用。结果这道题被我找到了某位大神的神仙做法,记录一下etCode 32 Longest Valid Parentheses(最长合法的括号组合)import java.util.*;class Solution { public int longestValidParentheses(String s...
2019-03-27 15:56:06
341
1
原创 Leetcode 69 x的平方根 Java
Leetcode 69 x的平方根这道题的标准答案应该是使用牛顿迭代法,但是现在不想看…所以记一下,这道题等空下来的时候要重新做。我用了二分法的办法做;class Solution { public int mySqrt(int x) { int left=0,right=46340; while(left<right) { ...
2019-03-22 21:17:50
393
原创 Leetcode 56 合并区间 Java
Leetcode 56 合并区间涉及到重写compare 记录一下/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int ...
2019-03-22 18:53:33
225
原创 Leetcode 10&44表达式匹配
两道题的思路基本是一样的,都用动态规划,因此放在一起。甚至44题比10题要简单一点。但是因为第十题我是参考的别人的代码,第44题是在10的基础上自己写的,所以还是把10放在前面><Leetcode 10 正则表达式匹配思路:里面涉及到两种情况,为 “ * ” 和 不为 “ * ”当p.charAt(j-1) == ‘ * ’ 时:1、dp[i][j] = dp[i][j -...
2019-03-19 14:49:12
466
原创 Leetcode 42 接雨水 Java
Leetcode 42 接雨水思想:用两个数组分别记录从左往右的最大值以及从右往左的最大值。我不知道该怎么描述,就相当于描述木桶的两条边,然后木桶的盛水量与短板有关。而用两个数组记录到某一个位置时,左右两边的木板的最高位置为多少举个例子:对于左木板而言,只要水位低于该位置往左最高的木板,水就能被兜住。对右木板同样道理。因此,当数组为(换行,对应起来方便看)[0,1,0,2,1,0,1...
2019-03-18 23:08:39
691
原创 Leetcode 215&347&973 最大堆排序
Leetcode 28 数组中的K个最大元素首先是最简单的纯堆排序:Leetcode 28思想就是先全部堆排序,然后最后输出第K个大就可以。其实在排序的时候可以再简化一点,不需要全部排序,但是我为了图简单,就全部排序了==class Solution { public int findKthLargest(int[] nums, int k) { int n=nums...
2019-03-18 15:12:57
442
原创 Leetcode 28 实现strStr() Java
Leetcode 28 实现strStr这道题,最开始我想图省事,用了动态规划写…结果73 / 74 个通过测试用例。我觉得这道题应该题意就不想让DP做。最后一个测试用例超出了内存的限制。但是我既然写出来了,就贴一下代码><class Solution { public int strStr(String haystack, String needle) { ...
2019-03-17 23:37:00
170
原创 全排列Java
全排列牛客上做到了全排列的题,当时看完讲解觉得懂了,过了两天再回想,只能记住大致思路,但是细节都忘了。这次重新回顾一下。全排列简单来说,就分为三步:交换、递归、交换举个简单例子 123,它的全排列为:123,132,213,231,312,321它可以被拆分成所有可能出现在第一个位置上的元素以及剩下n-1个元素的全排列交换:把第一个元素与之后的n-1个元素进行交换递归:剩下n-1个元...
2019-03-17 18:08:22
567
转载 几种常用的设计模式初步理解
代理模式&amp;装饰模式想到哪里写到哪里。区别:代理模式,注重对对象某一功能的流程把控和辅助。它可以控制对象做某些事,重心是为了借用对象的功能完成某一流程,而非对象功能如何。装饰模式,注重对对象功能的扩展,它不关心外界如何调用,只注重对对象功能的加强,装饰后还是对象本身。Spring的AOP的原理就是借助动态代理。举个例子,例子全部来源参考链接1//定义接口public inte...
2019-03-17 13:31:58
255
原创 Leetcode 206 反转链表 Java
Leetcode 206 反转链表这道题比较基础,记一下分别使用递归和迭代的方法。//迭代/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */...
2019-03-17 11:57:18
238
原创 Leetcode 62&63&64 不同路径 Java
Leetcode 62 不同路径这道题一看就是动态规划题,但是因为我动态规划掌握的不是很好,所以总想投机取巧,研究是否有不用DP的方法。这道题因为设置的非常简单,没有添加障碍物什么的,所以给了我用排列组合的方法&amp;amp;amp;gt;&amp;amp;amp;lt;排列组合 :先贴通过的代码段class Solution { public int uniquePaths(int m, int n) { in...
2019-03-16 14:24:45
416
原创 快速排序算法
快速排序算法堆排序和快速排序可以说是面试排序最容易考到的点了,本着非常应试的目的,温习一下快排的想法。public static void quickSort(int []num,int start,int end) { if(start&gt;=end) return; int key=num[start]; int low=start,high=end; while(lo...
2019-03-15 21:31:11
129
原创 JAVA刷题自用小笔记
JAVA刷题自用小笔记StackStack是Vector的一个子类构造函数:Stack<Integer> stack = new Stack<Integer>( );常用方法有:boolean empty( )Object push(Object element)Object peek( ) //不移除Object pop( ) //返回并移除int...
2019-03-15 14:28:00
211
原创 Leetcode 5最长回文子串 Java
最长回文子串题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”其实这道题的解法也是通过在网上搜别人的答案最后才完成的,并且只用了动态规划的办法,没有考虑更加适合的Manacher算法。本文只是记录一下我的...
2019-03-14 11:24:28
332
原创 Java重写Compare方法
Compare方法重写今天剑指offer上做到了一道题,需要重写compare方法对List进行排序。之前在书上看到这部分的时候只是一眼带过,转眼就忘。这次做题遇到了,就记录一下重写的方法。同样先贴一下代码,等之后有时间再深入理解后补充…ArrrayList&lt;String&gt; arr=new ArrayList&lt;String&gt;();...//新增集合元素Collec...
2019-03-12 20:21:20
4233
原创 最大堆排序
堆排序算法记录一下今天学堆排序的心得。首先,堆可以视为一棵完全二叉树。而完全二叉树具有以下的性质:(不考虑边界情况,且根节点的序列下标为0)假设某节点的序列下标为i,那么它的父节点的序列下标为 (i-1)/2 ,它的左子节点为 2*i+1 ,右子节点为 2*i+2 。根据以上这些信息,我们就可以构造一个最大/最小 堆了。步骤如下(以最大堆为例):将数组构造成为一个初始堆(自下而上)...
2019-03-11 18:43:52
320
空空如也
C++求最大加权独立集。只要思路就好了,代码我自己写
2015-04-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人