- 博客(43)
- 问答 (1)
- 收藏
- 关注
转载 美团笔试题--最大矩形面积
题目给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积(如图所示)。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值输入输入包括两行,第一行包含一个整数n(1 ≤ n ≤ 10000) 第二行包括n个整数,表示h数组中的每个值,h_i(1 ≤ h_i ≤ 1,000,000)-输出输出一个整...
2018-03-21 16:15:50 1151
原创 美团点评笔试--拼凑钱币
题目给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。输入 输入包括一个整数n(1 ≤ n ≤ 10000)输出 输出一个整数,表示不同的组合方案数解析看到这道题目,我的第一反映这是一道dp问题,因为类似的题目太多了,比如青蛙跳台阶,和这个题目是一样的问法。一次...
2018-03-21 14:21:50 863
原创 Java 笔试常见小问题
Java 笔试常见问题整理(非算法)不是算法相关的整理,是对于一些语法细节方面的整理,有时候很浪费时间标准输入输出标准输入输出 因为平常做项目的时候其实很少用到一些命令行的操作,但是在做算法训练或者笔试题的时候,基本上用例的输入与输出都需要使用命令行,来完成,这对于很长时间不用的还是需要要适应一下这里就用一个常用的循环输入,及其终止条件的用例记录一下其他的就比...
2018-03-17 15:59:04 272
原创 剑指Offer--二叉搜索树的后续遍历序列
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解析:二叉搜索树又叫二叉排序树。它的特点是,根节点左边的节点都小于根节点,根节点右边的节点都大于根节点,所以的子节点也遵循这个规律。知道这些,在解这道题目的时候,首先自己写一个二叉搜索树,将它的后续遍历序列写出来。会发现最后一个元素是根节点,而根节点会将前面
2017-05-12 22:16:27 319
原创 剑指Offer--层序遍历二叉树
题目:层序遍历二叉树,即从上往下打印二叉树,每层从左往右;解析:这道题目并不难,只是比较常用的一个问题,因为树形结构的多种遍历方法,我想以后会有很多使用的机会,所以借此收藏一下。以下的实现方法也是最常用的一种,就是用一个队列来存储每一层的节点,然后输出,完成层序遍历。因为队列的特点是先进先出,所以父节点会比子节点先进队列,也好久先输出父节点import java.util.*;/**public
2017-05-12 22:06:40 359
原创 剑指Offer--栈的压人与弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 解析:这道题目主要采取的是模拟的思想来解决的。即通过创建一个栈,根据压入序列来压入数据,根据弹出
2017-05-12 21:59:18 226
原创 剑指Offer --树的子结构
题目:输入两个二叉树A,B判断B是不是A的子结构。解析:针对树这种数据结构的题目,大多数都是根据树的遍历为基础来展开的。这道题目 也是这样的一个套路。从根节点开始判断,如果A树的根节点和B树相同,再比较左右子节点,再以左右子节点为根节点进行递归,如果最终达到B的叶子节点,都没有不同的节点,则B是A的子结构。如果发现有不同节点,则回到A树,遍历到下一个节点,继续比较。代母实现如下。/**publi
2017-05-12 21:46:33 220
原创 全排列算法
一.递归法问题:全排列问题及给出一个序列如{a,b,c}输出它的全排列,一共有3!=6种排法.及一个n个元素的序列全排列有n!个排列方法.那么如何得到每种排列呢?解析:首先拿到一个题目先用数学的思想去考虑怎么解决.我们在纸上模拟这道题目的过程,其实就是我们算法实现的过程,只不过需要我们通过程序代码使其形成一种闭环的操作,让它自己迭代得到最终的结果.全排列问题是递归的一种典型问题.举个例子{1,2,3
2017-05-08 15:57:26 418 1
原创 idea
记录一下自己的一些小想法,慢慢来实现~问题分析:目前的Android应用的使用,首先第一步是用户点击应用,启动应用,然后在应用内部寻找所需要的功能或者是内容.整个过程中用户至少会进行2次以上的无用操作,或者是重复操作.对于常用的功能,用户都需要进行点开应用,点击功能才能获得所需要的内容或者服务.在这个告诉发展的时代,时间就是金钱,时间就是体验.如何使得手机应用的服务不只是体现在应用图标,启动器的后面
2017-05-06 13:59:31 291
原创 剑指offer-- 反转链表
题目:反转链表,输入一个链表,输入该链表的反转解析:这道题没有什么思想,就是最基本的链表运算,但是牵扯了很多指针的变换,所以,经常拿出来考,大家熟记就好了/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/p
2017-05-04 17:25:44 286
原创 剑指offer--链表倒数第K个节点
题目:输入一个链表,输出该链表中倒数第k个结点。解析:最原始的想法就是先遍历一遍得到这个链表的长度,然后第二次遍历得到第K个节点的.第二种方法的思想很巧妙可以只遍历一次就可以.设置两个指针,先让尾指针向后移动k-1个单位,然后两个指针同时移动,直到尾指针到链表的最后一个节点,那么头指针就指向的是第K个节点./*public class ListNode { int val; Lis
2017-05-04 17:18:29 182
原创 剑指offer--DP类题目汇总
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39.解析:斐波那契数列就是前两个数的和等于第三个数,一个典型的递归思想的数列,所以这道题也是用递归的思想来解决.但是只是递归的话,会产生很多的冗余,因为递归会把每种情况算很多遍,比如算n=5的时候,会把前面n=4.3.2.1所有的情况算一遍得到n=5,而在算n=4的时候,也会计算n=1.2.3的情况这样产生了
2017-05-04 17:01:57 332
原创 剑指offer--旋转数组中的最小数
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解析:这道题我最开始的思路是直接从前往后遍历,找到后一个数字小于前一个数字.这个数字就是最小的那个数字.通过后发
2017-05-04 16:28:17 261
原创 剑指offer--两个栈实现队列
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析:栈和队列的弹出序列是相反的这个两个数据结构的性质有关,一个是先进先出,一个是先进后出.所以如果用两个栈,相当于把数据的顺序倒了两次最后使得起顺序和队列一样,这是原理很简单,但是如何实现呢,这里需要注意的点有两个: 1. 弹出栈不为空不能向里面压入数据 2. 压入栈必须每次将所有的数据都压入弹出栈i
2017-05-04 16:13:14 198
原创 剑指offer--重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解析:已知树的先序遍历和中序遍历,需要我们重建这个二叉树,其实大家都知道三种顺序遍历,我们只用只要其中两个就可以重建这个二叉树了.拿到这道题先分析一下,不用代码
2017-05-04 16:02:51 237
原创 第一次电面面经
在持续了将近一个多月的简历海投过程中,成功被这个世界所淹没,但是我从不服输,总会有我发光的地方. 前一天下午接到电话说,在第二天的下午会有一个电话面试,一下午加一上午的时间来准备这第一次的电话面试.知道这个消息的第一瞬间是兴奋的.因为我终于有面试机会了,面对的不会再是网上考试系统了.在网上疯狂找面经,然后去该公司的官网上,了解公司的概况,主要产品,研究方向等等.这个公司主要是做的移动端ocr技术
2017-04-22 14:08:39 621
原创 笔试题目笔记
一、5个人排队,解散后再排,每个人都不排回原来的位置,有多少种排法? 问题可用公式解决: n个人每个人都不站在原来的位置的方法数有: f(n)=n!(1/2!-1/3!+1/4!+..+(-1)^n/n!)但是一般都是问的前五个数的值,记住就可以了 f(2)=1,f(3)=2,f(4)=9,f(5)=44
2017-04-07 13:08:41 276
原创 Java多线程基础
并发技术一直是编程语言里面的一种高级技术。它意味着通过编程语言来控制多个处理器来处理事务,使得整个任务完成的更加的高校。而并发技术也主要是为了解决两个问题:速度,事务管理。
2017-03-29 15:27:49 222
原创 Java网络编程基础
一.概述网络编程,意在编写和网络相关的代码,主要实现利用网络进行交互的程序,而不仅限于与本地的程序,数据,用户进行交互与信息传递。无论是什么语言的网络编程,无非是要解决以下两个问题 1. 定位 2. 传输 在网络中,不管你是服务端还是客户端,都只是对这个网络接口所具有的职能的一种称呼,在网络中抽象出来,他们都是点对点之间进行传输的两个点而已。所以我们暂且不谈什么客户端,服务端,
2017-03-22 22:51:27 273
原创 Java—内部类(三)—内部类的继承
内部类的继承内部类和其他普通类一样,同样可以被继承,这样给本来就十分灵活的内部类增加了更好的结构性和代码复用性。只是内部类的继承和普通类有一些不同之处,是在使用时需要多加注意的。因为内部类在创建时需要外部类的引用,所以在内部类的继承上也需要外部类的协助。
2016-12-14 14:23:50 15444 4
原创 Java—内部类(二)—实现闭包与回调
前言:Java的闭包与回调我也是第二次接触这个概念,之前在自学Android的时候绘制View很多地方都用到了监听器回调,一直不是很明白,现在回头巩固Java的基础总算的弄明白,尽量用我自己理解的语言来和大家分享,希望对不懂的朋友可以有一定的帮助,大神也可以给我一点指点。概念:我觉得在理解一个事物之前,需要对这个事物在我们的大脑里有一个初步的概念,然后再对这个概念补充上细节,这是我在理解一些陌生事物
2016-12-13 10:45:13 5124
原创 Java接口———工厂方法设计模式
接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方法就是工厂方法设计模式。工厂方法与直接调用构造器不同,直接调用构造器,会导致对象的生成与对象的使用耦合性太强,使得代码不够灵活,而工厂方法则能够很好的使两者分离。而且工厂方法将完全和接口实现分离,这样也使得我们可以透明的将某个实现替换为另一个实行。下面是工厂方法的结构:package Test_1;interface Service{
2016-12-09 12:26:38 1369
原创 写给22岁的我
就在昨天度过了22岁的第一天,但是我感觉更像是度过21岁的最后一天。肆意的狂欢(也没有多肆意),想到什么就干什么,想吃什么就吃什么,挥霍时间,好想把每一分钟都过让我欢呼雀跃。但是时间不是我能够控制,仍旧从白天走到黑夜。 21岁,我都做了什么事情。 从学生会干事到部长,上台答辩,学习写论文,慢慢学着如何管理团队,和团队一起协作做到大家都开心 纠结与是否选择做主席之中,决定离开学
2016-12-04 16:19:40 580
原创 Java 继承与多态(三)—构造器的调用顺序
构造器是java为我们提供的一个初始化的地方。所以它与我们自己定义的普通方法有着一些特殊之处。当你遇到了复杂的对象的构建过程时,构造器的初始化顺序就变的极为重要了。以下一段代码为大家展示,多层继承与组合所构成的负责类构造器的调用顺序。package test;import edu.princeton.cs.algs4.StdOut;class Meal{ Meal() { S
2016-12-04 15:50:21 819
原创 Java 继承与多态(二)
在写完第一篇还没有一会儿,我就开始写这第二篇了, 因为这片的内容与第一篇的内容有着一定的相似性,都是在向上转型以后回头调用子类的成员。还是直接上代码package test;import edu.princeton.cs.algs4.StdOut;class A{ public static void f1(A a){ a.f2(); } public voi
2016-12-04 12:36:41 273
原创 Java 继承与多态(一)
今天在看java编程思想的时候,遇到了一个问题,没有想明白,于是放在这里讨论一下,一面自己忘记。 先上代码吧package test;import edu.princeton.cs.algs4.StdOut;class Cycle{ public int x = 1; static void ride(Cycle c){ System.out.println(""
2016-12-04 12:06:18 367
原创 Android源码目录结构
最近Java编程思想第一遍看的已经差不多了,感觉已经对Java有了一个全新的了解,目前的水平处在于练习各种控件的自定义开发上,准备尝试写一个完整的项目来试试手,需要运用一些框架,然后就开始看一看android的源码。刚刚一看目录,吓的我不知所措,在此分享一个可以在线看源码的网址:http://grepcode.com/project/repository.grepcode.com/java/ext
2016-09-26 10:24:02 235
原创 随笔日记(四)
别让自己平凡 这个世界很公平,你付出了多少努力就会获得多少机会。你用了多少脑子,就会创造出什么样的东西。公平不是社会上的标杆,不是法律,是上帝放在我们心里的那杆秤。平不平只有我们自己知道
2016-09-19 12:00:25 246
原创 随笔日记(三)
今天是中秋节,祝大家中秋节快乐~反正我今天还是很快乐的.今天一大早起来看了一部电影~最近很火的韩国丧尸电影,叫做釜山行.讲的是再韩国境内突然出现了一个生物病毒会把人变成丧尸,被丧尸咬过的人又会变成丧尸.主角是一个从事基金工作的父亲,因为常年的工作而和女儿疏远,和自己的妻子也分居两地.故事发生在女儿秀安过生日,在女儿的一再要求下,送她去见她的母亲的列车上.一个身怀病毒的女青年冲上了,准备行驶的列车上.
2016-09-15 16:42:46 278
原创 随笔日记(二)
又到一天随笔时~差点就忘记写了.今天早上有课,然后就去报名软考了,所以没有在早上完成今天的随笔啊~心情有点小不错~不知道为啥~因为一切顺利吗? 今天我要看一章节的Java编程思想然后晚上能够把那个3D滑动的效果基本做出来~今天的任务就算完成了~充实的一天呀~ 刚刚午睡的时候做了一个特别恐怖的梦.恐怖到我都不愿去回忆起来,更加不愿意去把这个事情卸载随笔里面记录下来,怕以后又会被勾起这个恐怖的回
2016-09-14 13:50:08 428
原创 每日随笔(一)
为什么会突然想写个每日随笔呢?我也不知道,可能是因为我看了罗胖的每天早上的那片文章,有所感悟,想要提升自己,所以写的把.但是我觉得我自己也挺喜欢写作的.因为这是一种创造,我和我一直想要达到一个高水平的程序员的初衷一样.我想要创造点什么,因为那个过程是如此的快乐,就像一个母亲有了一个与自己血脉相连的孩子一样.创造的过程,你将会收回一种神圣的快乐.这也是我咬牙看完那些枯燥的书的动力之一. 那每日
2016-09-13 10:21:31 1998
原创 自定义按钮--Selector
前言:在于一个界面中,与用户产生交互最多的控件就是按钮,不过是Button,还是LIst View里面的item,都起到一个按钮的功能。用户通过点击这些显式或者隐式的按钮,来达到和程序交互的作用。而Android原生的按钮都是千篇一律的白色方块,这样的UI不仅会让用户感到审美疲劳,就连开发者也会感觉到死板,所以如恶化定制一个合适的按钮来搭配自己的整个界面的风格是很重要的。这里就需要用到Selecto
2016-08-31 20:41:43 335
原创 Android绘图机制(二)--2D绘图基础
前言每次在讲正事前总要啰嗦几句,其实我也不想,只是文章没得一个开头,看起来就有点不爽,所以大家见谅,不喜欢的可以直接跳过。Android的绘图功能还是十分强大的,只要你有一个敢于创新的心,就没有什么画不出来的,接下来我将,从画图时所使用的工具开始介绍,希望能够帮助到大家,我自己也能够更好的巩固这方面的知识。绘图工具(一)–画布(canvas)canvas类相当于一个画布,我们通常把它理解成系统提供给
2016-08-29 19:56:36 537
原创 Android绘图机制(一)--屏幕尺寸信息
前言:在看完Android群英传这本书后,感觉自己还是空落落的,整本书看的很快,追求速度,和里面的代码实现,想着知道怎么用就行了,后来到了整个项目的开发时就觉得,确实是知道怎么做,却很难脱离书本,或者是源码去写自己的东西,所以我打算停下目前这种赶进度的心态,真正的沉下来,把这本数好好的回味一遍.也希望和我有同样想法的朋友,不要急于求成,这样不仅不能学好,而且会让自己感受不到Android的魅力,而渐
2016-08-29 16:03:55 528
原创 SurfaceView使用日记(二)--实例:绘画板
前言:在知道了SurfaceView的使用方法,以后实践,只最好的学习方法,所以在基本掌握了SurfaceView的用法后,我们通过一个实例的编写来更加深入的去掌握SurfaceView.由于它具有独立的子线程进行,图形绘制的同时,不会堵塞主线程,所以SurfaceView常用再游戏开发和一些需要经常刷新屏幕或者试进行数据处理的应用当中,接下来我们要编写的一个项目试绘画板,展现了如何使用Surfac
2016-08-28 10:11:13 631
原创 SurfaceView使用日记(一)
SurfaceView简介SurfaceView是继承于View的一个子类,所系它本身也是一个View,和View有着同样的生命周期和回调函数.但是SurfaceView和View也有着很大的区别:1.SurfaceView开通了一个子的线程进行页面的刷新2.SurfaceView实现的双缓存技术,进一步提高了Surface的效率所以SurfaceView经常用在需要频繁对屏幕进行刷新,或者数据处理
2016-08-28 09:24:39 448
原创 PuzzleGame-问题笔记(第一篇+感悟)
读android群英传感悟在经过大半个月的时间,终于完成了《Android群英传》的阅读。我是在看完郭大神的《第一行代码》后直接开始看的Android群英传这本书的,刚开始感觉风格上和郭大神的书有很大的不同,第一例程不再有那么详细的解说和完整的代码了,书上只会将一些关键的代码贴出来,而且只对该部分进行一定的解说,很多地方都需要读者在有了一定基础以后想一想才知道如何自己去实现例程。其次本书的大部分内容
2016-08-13 21:59:47 740 1
转载 Android开发经典书籍
随着Android手机市场份额大幅上升,有很多想学程序开发的都优先选择android开发,那么android开发从入门到精通要看哪些书籍。推荐以下Android开发必看的10本书。 《深入浅出Java》 作为入门书籍,深入浅出系列,一直是浅显易懂,所以作为入门太合适不过了。 《Think in Java (Java 编程思想)》 如果你是初学者,可以跳过这本书,但你稍微有点经验,这本书就逃脱
2016-07-19 14:48:11 791
转载 超级棒的一个DP问题详解(入门)
超级棒的一个DP问题详解(入门) 只要耐心看肯定可以理解的~动态规划问题故事描述~ 通过金矿模型介绍动态规划 附上原文地址: http://www.cnblogs.com/sdjl/articles/1274312.html 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲
2016-03-18 20:29:50 7744 4
空空如也
opencv项目出现pdb文件无法打开与符号无法加载问题(已添加服务器)
2016-05-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人