算法
文章平均质量分 72
不会飞的超人先生
美团点评某员工。计算广告工作,爱好无人驾驶。
展开
-
【编程之美/读书笔记】Chapter 1 游戏之乐
这里就不写每个问题的题目了,只是记录一下自己的总结和心得。1.1 让CPU占用率听你指挥这个题目我刚接触的想法是和多核多线程要扯上关系的,因为自己写个死循环只能跑到CPU 35%左右的占用率,但是现在java多线程还没看,所以参考了一下单核的思想,决定过几天好好看看java多线程,再来解决这个问题,下面先总结一下目前的几点收获:复习了一下 CPU 的频率,时钟周期的概念,举个例原创 2016-02-17 22:29:25 · 460 阅读 · 0 评论 -
【JAVA】堆实现
二叉堆的JAVA实现原创 2016-05-07 13:17:47 · 4297 阅读 · 0 评论 -
二叉树的前中后序遍历
下面代码实现了二叉树的前中后序遍历,包括递归和非递归版本:package tree;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Deque;import java.util.List;/** * Created by International on 2018/4/26. */p...原创 2016-04-20 18:50:56 · 398 阅读 · 0 评论 -
【算法】几种常用排序算法
1. 冒泡排序(Bubble Sort)冒泡排序算法需要遍历几次数组,在每次遍历中,比较 连续相邻 的元素。如果某一对元素是降序,则互换它们的位置;否则,保持不变。冒泡排序法需要遍历 n-1 次数组,每次遍历最佳情况是不用交换,则时间复杂度为 O(n) ,最差情况是每次都要交换,对于第 k 个要交换 n-1-k 次,此时时间复杂度是 O(n^2)Trick:如果在某次遍历中没有发生交换,说原创 2016-01-18 16:31:40 · 2756 阅读 · 0 评论 -
【剑指OFFER-二刷】
剑指offer二刷原创 2016-05-07 15:36:24 · 1248 阅读 · 0 评论 -
【刷题笔记/剑指Offer】31—40
1. 丑数把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。首先重点在于理解丑数的概念:就是说只能被2或3或5整除,直到整除到结果为1,就是丑数。接下来,来分析获取第N个丑数的方法。简单的思路就是从1开始,往后每次检查该数是不是丑数,但是这样时间效率很差原创 2016-04-08 14:13:54 · 387 阅读 · 0 评论 -
【刷题笔记/剑指Offer】41-50
41. 翻转单词顺序列42. 左旋转字符串43. 扑克牌顺子44. 数m45. 求1+2+3+......+n46. 不用加减乘除做加法47. 把字符串转换成整数48. 数组中重复的数字49. 构建成绩数组50. 正则表达式匹配原创 2016-04-23 14:59:30 · 788 阅读 · 0 评论 -
【算法】递归与尾递归总结
前言:今天上网看帖子的时候,看到关于尾递归的应用(http://bbs.csdn.net/topics/390215312),大脑中感觉这个词好像在哪里见过,但是又想不起来具体是怎么回事。如是乎,在网上搜了一下,顿时豁然开朗,知道尾递归是怎么回事了。下面就递归与尾递归进行总结,以方便日后在工作中使用。1、递归 关于递归的概念,我们都不陌生。简单的来说递归就是一个函数直接或间接地调转载 2015-09-02 19:43:06 · 435 阅读 · 0 评论 -
格雷码生成【grey code】
题目The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequen转载 2016-04-03 18:23:46 · 583 阅读 · 0 评论 -
【刷题笔记/剑指Offer】Part 2 (11-20)
11. 二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。原创 2016-03-08 15:41:50 · 508 阅读 · 0 评论 -
【刷题笔记/剑指Offer】Part 3 (21-30)
21. 栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。好吧,这个题目之前见过,但是这次遇到还是想不出来。。总之,思路是构建一个栈模仿题目操作,另外需原创 2016-03-13 15:36:41 · 659 阅读 · 0 评论 -
【刷题笔记/剑指Offer】Part 1 (1-10)
剑指Offer,在牛客网上可以在线刷题,感觉比看书本要来的更爽一些,现在开始刷起来!1. 二维数组中的查找public class Solution { public boolean Find(int [][] array,int target) { int i, j; for(i = 0; i < array.length; i++) {原创 2016-02-23 10:43:04 · 532 阅读 · 0 评论 -
算法温习
查找算法二分查找非常经典的查找算法,常用在已排序数组的查找上。 不过需要注意的还有几点:注意代码鲁棒性:函数头判断low和high的合法性求mid时,用 mid = low + (high - low) / 2 防止溢出扩展:若含有重复数字,则可以返回第一次或最后一次出现的位置代码示例:public class BinarySearch { public原创 2016-08-17 11:58:06 · 360 阅读 · 0 评论