自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 【leetcode】evaluate-reverse-polish-notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*,/. Each operand may be an integer or another expression. Some examples: 代码: import java.util.Sca...

2018-08-23 11:42:44 164

原创 【leetcode】Minimum Depth of Binary Tree

利用递归方法 public class Solution {     public int run(TreeNode root) {         if(root==null){             return 0;         }         int l=run(root.left);         int r=run(root.right);         if(l==0...

2018-08-23 09:59:51 113

原创 华为面试

华为是我找实习以来参加的第一场面试,比较忐忑和紧张,也不知道要从何准备。4月18号收到面试通知20号11:00面试,20号很早就到了,并不让进,大太阳的天,外面站着等还是很热的,所以大约下次提前半小时到一小时到比较合适。等到三点左右才叫到我一面。这期间一直想将算法岗转成IT应用软件(软件岗),之前有同学透露一面都是在聊项目,并没有问Java基础知识,而算法岗这边的情况不了解,并且自己项目经验里的算...

2018-05-07 13:57:03 239

原创 构建乘积数组

题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。思路:用两个数组,保存A[0]到A[i-1]的乘积,A[i-1]到A[n-1]的乘积,最后结果为俩数组对应乘积,注意边界特殊情况Java实现:public class Solution {  ...

2018-04-24 10:37:53 110

原创 某行某训练营笔试编程题(环形推销)

题2(大概题意):有n(输入第一行)个住户,环形排列,第n个住户与第1个住户和第n-1个住户相邻。推销员向每个住户推销能卖得一定的金额,这个金额在数组中(输入的第二行)。由于推销限制,不能推销给相邻的人,也就是推销给住户3,则不能推销给给住户2和4,求推销员能获得的最大金额。思路:dp[i]表示前i个住户,推销员能获得的最大金额,先不考虑第n个住户和第1个住户的相邻关系。dp[n]为最优解    ...

2018-04-24 09:52:23 151

原创 某行某训练营笔试编程题(换零钱)

题1:换零钱,输入第一行为零钱数和要拼凑的面额总数,第二行为对应零钱数的整数数组,表示零钱的面额大小        如,3种零钱,总金额为5,零钱为1,2,5。一共有4种方案:11111、1112、122、5,所以输出5解:dp[i][j]表示为前i种零钱拼成面额为j的方案数。        当j<value[i]时,用第i个零钱不能拼成j,dp[i][j]=dp[i-1][j]      ...

2018-04-23 18:34:44 378

原创 动态规划之背包问题Java实现

01背包:import java.util.Scanner;public class bag { public static void main(String[] args) { //输入 Scanner sc=new Scanner(System.in); int N=sc.nextInt();//物品数 int V=sc.nextInt();//背包容量 int[] c=new in...

2018-04-23 16:50:44 286

原创 动态规划之个人总结

实习招聘时碰到的编程题,最后都是卡在动态规划。看过一些动态规划的帖子,前面概念性的东西全靠个人理解了,这里不再赘述。什么时候用动态规划?(就做笔试题而言,看题目比较难,不知道从何开始的时候,一般就是要用动态规划做了。)当然,应该要看一些问题特征之类的······sample1:背包问题(01背包、完全背包、多重背包)有N件物品和一个容量为V的背包,第i件物品的所占容量为c[i],价值为w[i],问...

2018-04-23 15:47:41 442

原创 剑指OFFER-数组中重复的数字

题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路:一拿到题目,首先想到的是用hashmap或者数组之类的,遍历这个数组,有重复的就+1,最后输出第一个大于1的数。这种方法必...

2018-04-23 15:00:52 117

原创 剑指offer翻转单词顺序空格处理

常规情况即保存数组,倒序输出;对输出的空格处理为引入一个index变量,当它与字符串数组长度相等时,不输出空格。对于输入特殊字符串时并不符合结果,如输入“ ”(包含一个空格的字符串),返回为“”(正确结果为“ ”)对此尝试过:if(str==“ ”||str==null){ System.out.println(str);}if(str.equals(“ ”)||str==null){ Syste...

2018-04-10 21:04:21 181

原创 求两个链表的公共结点

题目:输入两个链表,找出它们的第一个公共结点。思路1:获取两个链表长度,算出差值,即为长链表先走的步数;走完这一部分,两个链表一起到相同结点时返回即可代码1:public class Solution {    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {        if(pHead1==null...

2018-03-29 11:08:02 310

原创 把数组排成最小的数

题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:重载比较方法,按新的比较方法排序并依次输出代码:import java.util.*;public class Solution {    public String PrintMinNumber(int [] ...

2018-03-27 15:04:48 121

原创 求连续子数组的最大和

题目:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。思路:从头到尾逐个累加,保存两个值:当前和&最大和。代码:public class Solution {    p...

2018-03-23 11:00:24 130

原创 求最小的K个数

题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路:将输入的前K个数先保存至ArrayList中,遍历数组中剩余数字,逐一与ArrayList中的最大数进行比较,若数组中的数字更大,则替换进ArrayList中。代码:import java.util.*;public class Solution {    publ...

2018-03-22 16:21:49 116

原创 输出数组中超过一半次数的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:遍历数组,保存两个值:数组中的数字和次数。遍历下一个数字是,若与保存的数字相同,次数+1,不同则-1;若次数为0,保存下一个数字,并把次数设为1代码:public class S...

2018-03-22 15:14:10 178

原创 二叉树中和为某一值的路径

题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:用递归方法,前序遍历法,向辅助链表依次添加结点,并累加值,当访问至叶节点时,如果累加值与目标值相等,则将这个辅助链表保存至结果中,待返回。否则继续访问其子节点。*每次递归函数返回时,要回至其父节点,即辅助链表要删除最后一个数。代码:public c...

2018-03-20 16:16:59 108

原创 判断已知两序列是否分别为栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:判断规律为,若下一个弹出的数字不是栈顶数字,则将压栈序列中的剩余数字依次压入,直至栈顶元素...

2018-03-19 15:20:41 287

原创 顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。思路:依次从外圈打印至里圈;每一圈的打印函数,上下两行均是完整打印,两列取其中。Java代码如下:import java.util.ArrayList;public class Solution {    public ArrayList<Integer> printMatrix(int [][] matrix) { ...

2018-03-17 16:14:05 151 1

空空如也

空空如也

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

TA关注的人

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