
算法
文章平均质量分 83
mitsuhide1992
软件研发工程师
展开
-
右线性文法
优酷笔试题思路用栈实现: 1、在输入1*0*0*1*这样的,#入栈 2、在输入(,|,,直接入栈。在输入 |时候需要判断,前一个必须是# 3、在输入)时候弹出栈,把(。。。)之间的全部弹出,()中应该是#|#|#|#|#这种间隔状的,出栈之后把#入栈。 4、在输入不为上面几种情况时,判断不符合该文法。代码package third;import java.util.Stack;import原创 2016-04-24 21:29:06 · 5582 阅读 · 0 评论 -
求数组最大等差数列
问题(优酷笔试题)求一个数组的一些值,使这些值满足等差数列。 注意:数组可以选出来的值不一定按照原有顺序。 比如:1,2,3,7,5,4,6,12 最长等差为:1,2,3,4,5,6,7 返回7思路O(n*n)解法: 1、快速排序 nlogn 2、dp算法dp[i][j]: 以A[i]A[j]开始的数列的长度(数列的前两项)dp[i][j]的子结构: dp[i][j]=原创 2016-04-23 22:15:54 · 2499 阅读 · 0 评论 -
缓存淘汰算法--LRU算法
原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 新数据插入到链表头部; 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 当链表满的时候,将链表尾部的数据丢弃。分析【命中率】 当存在热点数据时转载 2016-05-17 15:09:06 · 958 阅读 · 0 评论 -
归并排序
nodeJs实现function mSort (list, low, high) { if (list == undefined || list.length == 0 || low >= high) { return; } var mid = parseInt((low + high) / 2); mSort(list, low, mid);原创 2016-03-08 11:07:07 · 520 阅读 · 1 评论 -
洗牌算法:随机打乱一个数组的顺序
给定一个数组,要求把数组内元素的顺序随机打乱,然后输出,主要是要保证效率。这其实是个洗牌算法,首先从所有元素中随机选取一个与第一个元素进行交换,然后在第二个之后选择一个元素与第二个交换,直到最后一个元素。这样能确保每个元素在每个位置的概率都是1/n。当时面Vmware的时候,面试官说的是给出长度100的数组,然后打乱。 一开始说的是随机数生成100次,面试官说还有没有更好的算法。 然后说 先在转载 2016-05-15 19:13:31 · 5494 阅读 · 0 评论 -
反转链表
思路从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾 代码ActList* ReverseList3(ActList* head){ ActList* p; ActList* q; p=head->next; while(p->next!=NULL){ q=p->next; p转载 2016-05-15 16:56:47 · 331 阅读 · 0 评论 -
快速排序
nodeJs实现function quickSort (list) { if (list == undefined || list.length == 0) { return; } // console.log(list.length); qSort(list, 0, list.length - 1);}function qSort (list,原创 2016-03-08 10:50:53 · 613 阅读 · 0 评论 -
算法面试List
数组中最小差绝对值思路快排+遍历划分数组已知int A,数组Array,长度N,寻找k,要求: 1、Array[0-k-1]中包含等于A的元素数目x 2、Array[k-N-1]中包含不等于A的元素数目y 3、x = y 4、全部=A,输出0,全部!=A,输出N思路left=0,left->… right=N-1,…<-right 寻找Array[left] = Array[righ原创 2016-03-25 12:14:32 · 332 阅读 · 0 评论 -
Dijkstra找最短路径
问题描述节点0-N,求0到N的最短路径算法package com.java;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Map.Entry;public clas原创 2016-03-24 23:28:37 · 501 阅读 · 0 评论 -
微软笔试题3 Demo Day
package com.leetcode;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in);原创 2016-04-07 08:45:04 · 1217 阅读 · 0 评论 -
堆排序
nodeJs实现function heapSort (list) { if (list == undefined || list.length == 0) return; buildMaxHeap(list); for (var i = list.length - 1; i >= 0; i--) { var temp = list[0]; lis原创 2016-03-08 10:49:53 · 400 阅读 · 0 评论 -
LeetCode 4. Median of Two Sorted Arrays
问题There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1...原创 2018-03-19 20:27:53 · 597 阅读 · 0 评论