算法
文章平均质量分 51
简单点1024
熟悉ML,DM过程,参与ETL架构搭建,进行BI分析,热爱新技术
展开
-
Longest Increasing Continuous subsequence1,2(数组和矩阵)
1. 在数组中查找dppublic int findLengthOfLCIS(int[] nums) { if (nums.length == 0) return 0; int[] dp = new int[nums.length]; Arrays.fill(dp, 1); int max = 1; for (int i =...原创 2018-04-26 12:49:06 · 133 阅读 · 0 评论 -
leetcode速解题汇总2
code Ganker:1. Remove Nth Node From End of List -- LeetCode: 两个指针,fast先走k个节点,然后slow跟上。slow.next=slow.next.next;2. Divide Two Integers -- LeetCode; 不能用乘除法做除法。 Sqrt(x),Pow(x,n),3. Reverse Nodes in k-Gro...原创 2018-04-20 11:54:49 · 151 阅读 · 0 评论 -
未做题目汇总
解码字符串LeetCode-394. Decode String (JAVA)解码字符串LeetCode-282. Expression Add Operators (JAVA)表达式求值LeetCode-313. Super Ugly Number (JAVA)超级丑数 主元素问题1.combination sum|,||,|||都是DFS深度优先搜索。2.Summary Ranges Inpu...原创 2018-04-20 12:52:04 · 109 阅读 · 0 评论 -
Subsets,permutations ,combinations
1. Subsets子集:递归图2. 上一个排列(从后向前找后边大于前面的数,前面记为K,后面记为k+1,交换【k+1,n-1]中的比k稍微大元素,逆序[k+1,n-1])3. 排列原创 2018-04-25 07:43:04 · 140 阅读 · 0 评论 -
Search in Rotated Sorted Array
public static int search(int []nums, int target){ int left = 0; int right = nums.length - 1; while(left <= right){ int mid = left + (right - left)/2; // 2 ...原创 2018-04-26 12:49:14 · 116 阅读 · 0 评论 -
Largest Rectangle in Histogram
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.Above is a histogram where width of each bar...原创 2018-04-26 12:49:19 · 118 阅读 · 0 评论 -
Rotate Array
【问题描述】Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].Note:Try to come up as many solutions as you can,...原创 2018-04-26 12:49:23 · 119 阅读 · 0 评论 -
Missing number
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.For example,Given nums = [0, 1, 3] return 2.Note:Your algorithm should run in linea...原创 2018-04-26 12:49:31 · 173 阅读 · 0 评论 -
Find the Duplicate Number
[Leetcode]287. Find the Duplicate Number简单解法及解释 双指针复杂度O(n)原创 2016年01月01日 11:34:20标签:leetcode /指针 /时间复杂度 /空间复杂度4871题目链接:Find the Duplicate NumberGiven an array nums containing n + 1 integers where each...转载 2018-04-26 12:49:28 · 184 阅读 · 0 评论 -
Find Peak Element(二分查找)
原题链接:162. Find Peak Element【思路-Java、Python】 二分查找题目中已经说明,最左端和最右端元素均无限小,中间元素比两侧都要大,那么本题中一定存在一个峰元素。所以不管中间有多少波峰,只要找到峰元素,我们只需找到刚刚开始下降而未下降的位置。采用二分查找,查出这样一个位置即可,我们知道二分查找要比较的是 target 元素,本题的 target 元素是 mid 的后一...转载 2018-04-26 12:49:37 · 228 阅读 · 0 评论 -
LeetCode中与Permutations相关的共有四题:详解
LeetCode中与Permutations相关的共有四题: 31. Next Permutation 46. Permutations 47. Permutations II 60. Permutation Sequence 大致包括了所有全排列问题可能考到的题型。 本文按序列出了解这四道题的详细思路和AC代码。在各题之间,尽可能地使用了不同的解法,使大家对各种方法能...转载 2018-04-25 07:42:52 · 153 阅读 · 0 评论 -
prepare for google & ms
1. 最短路径2. 拓扑排序3. 关键路径4. 最小二叉树5. 通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小。 算出两者和之差,然后使用二分查找方法,交换元素,计算和之差和当前和之差进行对比,如果小于则重新复制,否则继续交换。6. 单例设计模式7. 对称字符串的最大长度:从两边向中间找,如果相等,计数器加一,不等则计数器置为08. ...原创 2018-04-24 13:51:49 · 109 阅读 · 0 评论 -
Convert Integer A to Integer B
1. A代表的二进制数转为B代表的二进制数,编辑距离是多少, public static int bitSwapRequired(int a, int b) { int count = 0; int a_xor_b = a ^ b; while (a_xor_b != 0) { ++count; a_xor_b &= (a_xor_b - 1); ...原创 2018-04-26 12:49:10 · 521 阅读 · 0 评论 -
Factorial Trailing Zeroes
1. 一个数末尾0的个数public int trailingZeroes(int n) { if (n == 0) { return 0; } else if (n < 0) { return -1; } else { return n / 5 + trailingZeroes(n / 5); } }原创 2018-04-24 13:52:32 · 101 阅读 · 0 评论 -
digitCounts 统计0-n之间k字符出现的个数
public int digitCounts(int k, int n) { int count = 0; char kChar = (char)(k + '0'); for (int i = k; i <= n; i++) { char[] iChars = Integer.toString(i).toCharArray(); for (char iChar : i...原创 2018-04-24 13:52:41 · 220 阅读 · 0 评论 -
Majority 主元素1,2,3
1. 1/2public int majorityNumber(ArrayList<Integer> nums) { if (nums == null || nums.isEmpty()) return -1; // pair<key, count> int key = -1, count = 0; for (int num : nums) { // ...原创 2018-04-24 13:52:21 · 124 阅读 · 0 评论 -
Exhaustive Search - 穷竭搜索
方法:1. 递归函数2. 栈3. 队列4. 深度优先搜索(DFS, Depth-First Search),又常称为回溯法5. 广度优先搜索(BFS, Breadth-First Search) 1. Subsets:DFSpublic List<List<Integer>> subsets(int[] nums) { List<List<Integer&...原创 2018-04-24 13:52:11 · 2656 阅读 · 0 评论 -
寻找数组中最小的k个数(快排和堆排)
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路1:利用快排的思想,寻找第k个位置上正确的数,k位置前面的数即是比k位置小的数组,k后面的数即是比k位置元素大的数组。 public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, in...转载 2018-04-24 13:52:03 · 876 阅读 · 0 评论 -
二叉树的非递归遍历实现
import java.util.Stack;public class Iterator1{ //先序遍历 public void preIterator(BiTree root) { if(root == null) return; Stack<BiTree> stack = new Stack<BiTree>(); BiTre...原创 2018-04-06 15:53:09 · 322 阅读 · 0 评论 -
移除有序链表中的重复元素,保留一个重复值
/** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solu...原创 2018-04-06 16:15:39 · 932 阅读 · 0 评论 -
fastPower
[LintCode]Fast PowerVersion 1 O(n) 超时class Solution { /* * @param a, b, n: 32bit integers * @return: An integer */ public int fastPower(int a, int b, int n) { // 20...原创 2018-04-07 10:24:46 · 176 阅读 · 0 评论 -
leetcode速解题总结
mine_song==============================1. subtree of another tree :两棵树的根节点,flag;2. Range addition ||范围相加:行,列和输入取最小值,乘积;3. minimum index sum of two lists最小索引:两个map存输入的两个list, 如果之和小于min的话,重新初始化一个链表。4. K...原创 2018-04-19 22:27:10 · 279 阅读 · 0 评论 -
字符串问题汇总
public boolean isPalindrome(String s) { if (s == null || s.isEmpty()) { return true; } int l = 0, r = s.length() - 1; while (l < r) { // find left alphanumeric character if (!Char...原创 2018-04-21 12:37:24 · 187 阅读 · 0 评论 -
Integer array 题目汇总
1. 和为k的的子数组public static List<Integer> zeroSubArray(int []nums,int k){ HashMap<Integer,Integer>map=new HashMap<Integer,Integer>(); List<Integer>list=new ArrayList<Intege...原创 2018-04-21 20:03:56 · 349 阅读 · 0 评论 -
不均匀硬币产生随机数
问题描述:有一枚不均匀的硬币,已知抛出此硬币后,正面向上的概率为p(0 < p < 1)。请利用这枚硬币产生出概率相等的两个事件。这个问题跟之前的利用等概率Rand5产生等概率Rand3非常像,但却简单的多。几个月前还为这个事情头疼了一下,现在想来真是不应该。某一次抛出硬币,正面向上的概率是p,反面向上的概率是1 - p,当p不等于0.5时,这两个事件的概率就不一样了。怎么...原创 2018-09-01 21:59:51 · 2476 阅读 · 1 评论 -
SVM为什么使用对偶函数求解
对偶问题将原始问题中的约束转为了对偶问题中的等式约束 方便核函数的引入 改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。...转载 2018-09-03 17:08:28 · 4760 阅读 · 0 评论 -
The Maze 1, 2
https://blog.csdn.net/zshouyi/article/details/72974347https://blog.csdn.net/magicbean2/article/details/78744299原创 2018-09-09 19:32:43 · 197 阅读 · 0 评论 -
2014年HULU笔试题
填空题:1、中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,先序遍历结果为? FCBADEGH 如下图所示:2、对字符串HELL0_HULU中的字符进行二进制编码,使得字符串的编码长度尽可能短,最短长度为?25;(哈弗曼编码)1*4+1*4+1*3+3*2+2*2+2*2=253、对长度12的有序数组进行二分查找,目标等概率出现在数组的每个位置上,则平均比...转载 2018-09-09 20:17:39 · 650 阅读 · 0 评论 -
朋友圈数(DFS&BFS)
Friend Circles班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果Mi = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已...原创 2018-09-09 20:55:15 · 527 阅读 · 0 评论 -
八皇后问题
我这里贴 链接 算是在帮公众号做推广吗...好吧不废话了。我觉得文章里画的图解真的很详细易懂,本来想截图,然后一张张地用Java语言再解释一遍,但是担心涉及到知识产权和版权问题,出于尊重的原因。还是只贴链接吧。建议大家可以先看一下链接里的思路解释,对于理解下面的代码实现就会容易很多了。我们先以8*8的棋盘为例,进行八皇后问题的实现:一、如果只对总方案数进行计算:public clas...转载 2018-09-09 21:20:40 · 111 阅读 · 0 评论 -
逻辑回归和离散特征
连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果?Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里?A:在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:0、 离散特征的增加和减少都很容易,易于模型的快速迭代。(离散...转载 2018-09-12 10:42:17 · 3709 阅读 · 0 评论 -
Kmeans中的K值选取
1. 最简单的方法:K≈sqrt(N/2)2. 拐点法:把聚类结果的F-test值(类间Variance和全局Variance的比值)对聚类个数的曲线画出来,选择图中拐点3. 基于Information Critieron的方法:如果模型有似然函数(如GMM),用BIC、DIC等决策;即使没有似然函数,如KMean,也可以搞一个假似然出来,例如用GMM等来代替4. 基于信息论的方法(J...转载 2018-09-16 10:41:14 · 19844 阅读 · 7 评论 -
图的遍历DFS&BFS
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24486393/article/details/50270481图的深度优先遍历(DFS)和广度优先遍历(BFS),DFS利用递归来实现比较易懂,DFS非递归就是将需要的递归的元素利用一个栈Stack来实现,以达到递归时候的顺序,而BFS则是利用一个队列Queue来实现。package...原创 2018-10-16 21:57:54 · 344 阅读 · 0 评论 -
HashMap的实现
正好最近在用python尝试构建hash表,顺道把这道题也一起解了。 用Python实现的一个简单的Hash表,采用hash函数是取余,用线性探测解决冲突问题。class HashTable: # 初始化 def __init__(self, size): self.elem = [None for i in range(size)] ...转载 2018-09-01 20:50:19 · 203 阅读 · 0 评论 -
Mysql的联合索引
命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则https://segmentfault.com/q/1010000003984016/a-1020000003984281联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的...原创 2018-08-29 22:13:02 · 174 阅读 · 0 评论 -
Java基础面试题
1: Arraylist和Linkedlist的区别? ArrayList1)ArrayList底层数组结构,原理:数组复制2)底层自动扩容数组,初始为10,每次扩容上次的1/23)善于查询4)利用index按顺序存储LinkedList1)底层链表结构(双链表)2)善于插入删除数据3)特殊方法:addLast(),addFirst(),removeFirst...转载 2018-08-29 22:10:21 · 241 阅读 · 0 评论 -
3Sum
这道题凭我现有知识实在解答不上来,只好网上搜索解法,才发现 K Sum 是一类问题,但是网上没有比较简洁的代码,我想对于初学者来说,可能还是想先看看这道题怎么解,然后才有兴趣去看其扩展吧。【题目】Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all uniq...原创 2018-04-21 22:02:57 · 105 阅读 · 0 评论 -
二叉树的后继节点
一 题目给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。二 例子对于下面的二叉树,8的后继节点为9(题目说的中序遍历),6的后继节点为7,5的后继节点为6三 思路思路很简单,①如果节点有右子树,则该节点的后继节点就是往右子树出发,然后转到右子树的左子树,一直到左子树的左子树为空(即输入节点的右子树的最左子树,例如...转载 2018-07-16 08:19:19 · 8677 阅读 · 0 评论 -
字符串的最小复制粘贴次数
Initially on a notepad only one character ‘A’ is present. You can perform two operations on this notepad for each step:Copy All: You can copy all the characters present on the notepad (partial copy ...原创 2018-08-31 22:02:05 · 1146 阅读 · 0 评论 -
有效正方形
问题描述: 给定二维空间中四点的坐标,返回四点是否可以构造一个正方形。一个点的坐标(x,y)由一个有两个整数的整数数组表示。示例: 输入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1] 输出: True注意: 所有输入整数都在 [-10000,10000] 范围内。 一个有效的正方形有四个等长的正长和四个等角(90度角)。 ...转载 2018-09-01 10:43:33 · 228 阅读 · 0 评论