自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 问答 (1)
  • 收藏
  • 关注

原创 【LeetCode】Container With Most Water

题目描述:Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). F...

2018-07-29 18:46:40 263

原创 【LeetCode】Search in Rotated Sorted Array

题目描述:Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).You are given a target value to search. If...

2018-07-29 16:19:13 312

原创 【Java面经】非科班渣硕转行及求职分享

背景介绍楼主某末流985渣硕一枚,磕盐不会,偶然接触了下编程,然后又稍微学了学Java,后面就走上了程序猿的道路,今年四月侥幸去菊厂实习了一波(虽然没学到东西)。秋招拿了几个一般的offer(大佬们别见笑):去哪儿、海康威视、招银网络科技,最后签约招银(四川人,想每天下班吃火锅)。去年的时候比较迷茫,不知道自学到底需要准备什么,在牛客上看了很多面经,非常受益,今天也分享一下供参考。

2017-10-29 20:39:29 1642 1

原创 纸牌博弈

题目:有一个整型数组A,代表数值不同的纸牌排成一条线。玩家a和玩家b依次拿走每张纸牌,规定玩家a先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的纸牌,玩家a和玩家b都绝顶聪明,他们总会采用最优策略。请返回最后获胜者的分数。给定纸牌序列A及序列的大小n,请返回最后分数较高者得分数(相同则返回任意一个分数)。保证A中的元素均小于等于1000。且A的大小小于等于300。测试

2017-08-06 10:34:58 625

原创 字符串交错组成

题目:对于三个字符串A,B,C。我们称C由A和B交错组成当且仅当C包含且仅包含A,B中所有字符,且对应的顺序不改变。请编写一个高效算法,判断C串是否由A和B交错组成。给定三个字符串A,B和C,及他们的长度。请返回一个bool值,代表C是否由A和B交错组成。保证三个串的长度均小于等于100。思路:状态转移方程:判断i=0和j=0的情况,如果i等于0,则必须B和

2017-08-05 14:50:00 619

原创 数值的整数次方

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路:一看就能想到的方法是:使用循环,指数多少就循环乘多少次得出结果。需要注意的是:1、底数为0且底数;2、由于底数是double类型,可能不能精确表示,所以可以判断(底数-0.0)的值是否>-0.000001或者考虑底数正负的情况。一种相对好点的方法是:x为奇数时,a^

2017-07-27 01:55:22 331

原创 二进制中1的个数

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解法1:思路:1与该数相与,如果不为0,说明最末位上的数字为1。1左移一位,与该数相与,如果不为0,说明倒数第二位上的数字为1。将1继续左移与该数比较,统计1的个数。注意:不能让该数往右移的方式来与1比较,因为负数往右移,高位会补1,就会陷入死循环。代码:public class Solution { p

2017-07-24 01:04:58 321

原创 斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n思路:使用递归,f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)每次返回前两项之和。这种方法重复计算了值,效率很低,数字过大还可能栈溢出,可以使用动态规划来进行优化。使用循环可以极大提升时间效率。代码如下。代码:递归,可以用动态规划优化public class Solution {

2017-07-23 20:30:13 290

原创 旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。代码:import java.util.ArrayList;public class Soluti

2017-07-23 20:00:19 315

原创 用两个栈实现队列

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码:import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int nod

2017-07-22 16:47:10 309

原创 重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码:/** * Definition for binary tree * public class TreeNode { * int va

2017-07-22 16:14:33 295

原创 从尾到头打印链表

题目:输入一个链表,从尾到头打印链表每个节点的值。思路:将每个节点的值存入栈中,再依次出栈打印。也可以使用递归来解决。代码如下:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this

2017-07-17 00:06:55 256

原创 替换空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:如果从字符串头部开始遍历,每个遇到一个空格,都需要变成“%20”,同时还需要把空格后的所有字符往后移动两位,复杂度太高。遍历旧数组两次,第一次找出空格的个数,确定新字符串的总长度。第二次从旧字符串的末尾往头部遍历,从新字符串的末尾

2017-07-16 23:01:28 324

原创 二维数组中的查找

二维数组中的查找

2017-07-16 22:19:00 273

原创 Java虚拟机类加载机制

一句话描述:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。类加载全过程:加载-验证-准备-解析-初始化1、加载    在加载过程中主要完成三件事:1、通过一个类的全限定名来获取定义此类的二进制字节流(由类加载器完成,可以自己定义类加载器加载非数组类,数组类由虚拟机直接创建)2、将这个字节流所代表的静态存储

2017-03-21 19:55:53 320

原创 Java虚拟机笔记

虚拟机的程序计数器,虚拟机栈和本地方法栈属于线程私有,随线程创建而创建,随线程结束而结束,这几个区域的内存分配和回收都具有确定性。因此虚拟机内存回收主要考虑堆区和方法区。    1、引用计数算法:    给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。(没有被使用,很难解决对象之间相互循环引用的问题

2017-03-03 14:08:52 330

原创 mybatis mapper问题

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.video;Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Caus

2016-11-29 00:55:14 434

原创 2016.11.25笔记

一、递归:递归四条基本法则:1、基准情形。必须总要有某些基准情形,它无需递归就能解出。(即递归中用于跳出)2、不断推进。对于那些需要递归求解的情形,每一次递归调用都必须要使状况朝向基准情形推进。3、设计法则。假设所有的递归调用都能运行。4、合成效益法则。在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作。二、程序运行时间估算:法则1:for循环一个fo

2016-11-25 18:54:01 414

原创 今天开始写写博客,记录一下学习的感悟

以前一直没有写博客的习惯,学了东西就一股脑的记在脑子里,没有消化再吸收,时间一久就忘了。

2016-11-25 17:20:35 346

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除