- 博客(17)
- 收藏
- 关注
原创 秋招之8.31农行研发中心笔试
农行研发中心再ATA集中举办的机试,应该算是很大规模的吧,我在8考场,有朋友在17考场,每个考场有七八十个人。 早上9:00-11:00两个小时的时间,门口有小柜子可以放个人物品,草稿纸会发,只用带水、笔和准考证身份证 座位离得挺近的,但是大家题目顺序不太一样。 题目构成是:行政能力测试(10分钟)、英语(15分钟)、专业知识(70分钟)、性格测试(15分钟),时间上记得不太清楚了,大概是这...
2019-08-31 17:35:35 5409 2
原创 268. Missing Number
这个题是比较简单,不过要先注意一下提示(note,要求运行时间线性,额外空间有限)。由于数组可以确定是0到n,输入缺少其中一个,那么总和-数组总和就是缺少的那个数。Java代码:class Solution { public int missingNumber(int[] nums) { int length = nums.length; int sum = le
2018-01-17 20:27:19 151
原创 598. Range Addition II
题目意思很简单,然后我就按照一般办法做的,遍历一遍ops,对于符合的进行加一操作,然后再遍历一遍得到最大值有多少个。 然后就华丽的TLE了。 所以找了新思路,对于ops取每对a和b的最小值,然后与m、n比较取最小值,最后返回乘积。 java代码(运行时间6ms) public int maxCount(int m, int n, int[][] ops) { int mi
2017-11-15 20:24:06 177
原创 258. Add Digits
对num的每位数字做和,然后循环,直到和小于10为止。 java代码(运行时间2ms) public int addDigits(int num) { int sum = 0; while(num!=0) { sum = sum+num%10; num=num/10; } if(sum return
2017-10-30 16:01:54 143
原创 520. Detect Capital
判断一个字符串是否满足三个条件(全大写、全小写、只有第一个字母大写其他小写) 首先遍历一遍,获得大写字母的个数 判断(与字符串长度相等=全大写,为0=全小写,等于1--判断是否为第一个字母大写,其他都是false) java代码(运行28ms) public boolean detectCapitalUse(String word) { int length =
2017-10-30 15:30:01 152
原创 226. Invert Binary Tree
交换二叉树的左右节点,还是用到迭代的方法。 java代码: public TreeNode invertTree(TreeNode root) { if(root==null) return null; else { TreeNode newTree = root.left; TreeNode left = root.left; TreeNode right = ro
2017-10-30 15:17:50 131
原创 104. Maximum Depth of Binary Tree
题目很简单,是求一个二叉树的最大层数,首先思路就是用迭代的方法,左子树的长度和右子树长度比较之后取最大值,然后加一即为二叉树的最大层数。 java代码如下(运行时间1ms,并不是很快) public int maxDepth(TreeNode root) { if(root==null) return 0; else { int maxleft = max
2017-10-30 15:06:29 120
原创 690. Employee Importance
题目中每个有三个元素,id、值、手下的编号list,由于题目并没有说明id是顺序并且按照1,2,3,4,……所以,需要遍历一次获取到id对应的值以及list,然后对每个list递归调用并将值累加。 [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1 public int getImportance(List employees, int
2017-10-24 15:34:25 141
原创 566. Reshape the Matrix
将一个数组变成r*c的数组,获得数组长度,如果和r*s不同,就返回原矩阵,否则,就每行读取,给新矩阵每行进行赋值。 java代码:(8ms,不是很快诶==) public int[][] matrixReshape(int[][] nums, int r, int c) { int sum = nums.length*nums[0].length;
2017-10-23 16:19:57 122
原创 575. Distribute Candies
题目是求姐姐最多能拿到蜡烛的种类,当所有蜡烛都不同时,姐姐最多拿到数组长度一半的种类,当所有蜡烛都相同时,姐姐最多拿到一种,所以考虑用hashmap存不同蜡烛,以便于求不同蜡烛一共有多少个。最后判断它和数组长度一半的大小。 java代码如下:(运行时间113ms,并不是很快) public int distributeCandies(int[] candies) { Hash
2017-10-23 15:34:44 142
原创 682. Baseball Game
题目理解意思之后,就是栈的工作原理,遇到数字就进栈,遇到“+”将栈顶前两个数字相加作为新值入栈,遇到“D”将栈顶数字两倍值作为新值入栈,遇到“C”栈顶出栈。 我用一个数组来表示一个栈。 Java代码:(运行时间7ms) public int calPoints(String[] ops) { int length = ops.length; int arra
2017-10-23 15:19:11 279
原创 500. Keyboard Row
题意就是判断一个单词是否在同一行。 我的方法是:首先判断这个单词的第一个字母在哪个位置,然后判断后边的字母是不是和第一个字母的位置相同,不同的话就赋值0。可能我写的比较麻烦,因为看上去代码好多,有待于进一步改进把。 java代码如下:(运行时间3ms) public String[] findWords(String[] words) { String line = "Q
2017-10-22 22:18:59 122
原创 476. Number Complement
理解一下题意,大概就是对该数的二进制值进行取反,但是与取反运算不同的是(5的二进制为00000101,取反会是11111010,而想得到的是00000010)。所以我想用异或运算来求解。sum是求一个二进制为1,并且比该数大的值。比如5的二进制是00000101,我要求的是00000111,即6,然后取异或,得到00000010,即2) java代码是:(13ms,感觉不知道该怎么提高了。。)
2017-10-22 21:28:21 140
原创 561. Array Partition I
根据题目意思,首先将一个2n的数组进行排序,然后两个一组进行分组,每组取最小值进行相加。 java代码如下: public int arrayPairSum(int[] nums) { List num = new ArrayList(); for(int i=0;i num.add(nums[i]); } Collections.s
2017-10-22 19:21:31 217
原创 617. Merge Two Binary Trees
题目意思是将两个二叉树合并,左树相加,右树相加。 此题的心得和总结是: 1.此处大概就是要理解循环调用(忘记这个词儿咋说了,迭代?)。 2.还要注意红色部分,一定要记得赋初值,不赋初值的后果就是在紫色部分调用t.val时会无这个值而产生错误(Runtime Error) java代码如下。 public TreeNode mergeTrees(TreeNode t1, TreeNode
2017-10-21 21:24:19 132
原创 657. Judge Route Circle
这个题还比较简单吧。大概就是一个人可以上(U)下(D)左(L)右(R)移动,所以我就把它作为一个坐标轴上的点的移动来看,最开始是(0,0),U时是x轴加一,D时是x轴减一,L时是y轴减一,R时是y轴加一。那么代码也就很简单了。最后判断一下是否回到原点就可以了。 (个人心得及总结:其中用到了string类型的charAt方法,这个是从网上搜到的对string取第i个字符串的方法,然后char类型的
2017-10-20 21:40:05 195
原创 461. Hamming Distance
其实题目很简单,但是因为有些单词不太懂,所以没怎么理解题的意思。它是讲我们对两个数的二进制数进行计算,计算他们不同的个数,同时是0或者1,不计数,一个是0一个是1就计数。(PS:当时我就是以为是相同的取1,不同的取0,结果刷了好多次都没过,真是哭死了。) 下面是我自己的代码,可能有些过于简单,只做参考:(java代码) class Solution { public int hamm
2017-10-20 21:23:41 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人