
面试题
29DCH
In me the tiger sniffs the rose.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阿里巴巴社招Java面试题做题记录
阿里巴巴社招Java面试题 1、String和StringBuffer的区别 运行速度和线程安全两方面: 运行速度:StringBuilder >StringBuffer >String String是字符串常量,不可变,每次改变只是创建一个新的对象,然后GC回收掉老的那个,所以执行速度最慢,另外两个是字符串对象,可变。 线程安全: StringBuilder是线程不安全的...原创 2018-06-13 22:17:12 · 3891 阅读 · 0 评论 -
记Google的一道面试题(java) Beautiful Numbers
Beautiful Numbers 思路: 13->三进制->111 11+13+133=13 13%3=1,13/3=4 4%3=1,4/3=1 1%3=1,1/3=0 1.第一种情况:数据范围比较小 代码: package test; import java.io.BufferedReader; import java.io.InputStreamReader; import...原创 2018-12-09 22:59:29 · 546 阅读 · 0 评论 -
leetcode347 Top K Frequent Elements(前K个高频元素)
题目链接:https://leetcode.com/problems/top-k-frequent-elements/ 知识点: 优先队列,详细见我的博客 https://blog.youkuaiyun.com/CowBoySoBusy/article/details/84338996 思路: 维护一个k个元素的优先队列,如果遍历到的元素比队列中最小频率的元素频率高,则取出队列中最小频率的元素,将新元素入队....原创 2018-11-22 18:29:46 · 223 阅读 · 0 评论 -
leetcode279 Perfect Squares(完全平方数)
题目链接:https://leetcode.com/problems/perfect-squares/description/ 知识点: 图论问题,最短路径,队列实现广度优先算法 思路: 这题运用贪心的思想是行不通的。举出一个反例如下: 标准解: 12 = 4 + 4 + 4. 贪心解: 12=9 + 1 + 1 + 1. 显然贪心求出来的组成和的完全平方数的个数比最优情况下要多。 所以采用转化为...原创 2018-11-22 12:34:00 · 250 阅读 · 0 评论 -
leetcode144 Binary Tree Preorder Traversal(二叉树的前序遍历)
题目链接 https://leetcode.com/problems/binary-tree-preorder-traversal/ 知识点: 树,递归,栈,迭代等。 思路: 1.递归进行树的前序遍历 2.借助栈来进行迭代 AC代码: 1. 递归 class Solution { public: vector<int> res; vector<int&a原创 2018-11-14 21:57:09 · 166 阅读 · 0 评论 -
leetcode20 Valid Parentheses(有效的括号)
题目链接 https://leetcode.com/problems/valid-parentheses/ 知识点: 考察栈的相关知识 思路: 遍历括号字符串序列,遇到左方向的括号就入栈,遇到右方向的括号时,如果与此时的栈顶元素相匹配,就出栈,否则代表出错,后面就不需要再匹配了。然后继续遍历序列直到结束。如何与当时栈顶元素不匹配或者最后栈不为空,代表false,否则就是有效的字符串序列。 AC代码...原创 2018-11-12 20:59:12 · 194 阅读 · 0 评论 -
leetcode19 Remove Nth Node From End of List(删除链表的倒数第N个节点)
题目链接 https://leetcode.com/problems/remove-nth-node-from-end-of-list/ 知识点: 考察链表、指针相关知识 思路: 1.先遍历一遍计算得到链表的长度,再遍历一遍删除倒数第n个节点 2.双指针法:p指针开始的时候指向虚拟头结点,p、q指针之间的距离一直保持为n,p 、q指针同时往链表尾移动直到q指针指向NULL,代表此时p指针指向的元素...原创 2018-10-29 17:39:47 · 175 阅读 · 0 评论 -
leetcode237 Delete Node in a Linked List(删除链表中的节点)
题目链接 https://leetcode.com/problems/delete-node-in-a-linked-list/ 知识点: 考察链表、指针相关知识 思路: 这里只给出了node,没有给出val值,所以在一般情况下是不好删除node节点的.但是可以借助一个巧妙的方法,将node节点的下一个节点的值赋值给node节点,然后删除node节点的下一个节点即可.同样达到了删除node节点的目...原创 2018-10-29 16:07:27 · 303 阅读 · 0 评论 -
leetcode24 Swap Nodes in Pairs(两两交换链表中的节点)
题目链接 https://leetcode.com/problems/swap-nodes-in-pairs/ 知识点: 考察链表指针相关知识 思路: 用p、node1、node2、next四个指针操作。相邻两个元素依次反转完毕后直到p指针指向倒数第二个节点时结束,将虚拟头结点dummyhead销毁,返回头结点retNode即可。 AC代码: class Solution { public: ...原创 2018-10-29 14:52:14 · 257 阅读 · 0 评论 -
12个有趣的C语言面试题及答案
转载自:http://blog.youkuaiyun.com/sjin_1314/article/details/48418483 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: [c] view plain copy print?#include<stdio.h>   ...转载 2018-09-05 20:14:45 · 550 阅读 · 0 评论 -
总结无需中间变量交换两个变量的值的方法
依靠中间变量交换两个变量的值的方法想必大家已十分熟悉,这也是在程序设计和解决工程问题的时候经常使用的方法. 但是有些时候根据一些特定的性质,我们不需要借助第三方变量来交换指定两个变量的值. public class SwapTest { public static void main(String[] args) { /* * 位异或运算符的特点 * ^的特点:一个数据对...原创 2018-08-25 10:07:42 · 398 阅读 · 0 评论 -
java equals方法重写和hashcode方法总结
JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现(重写覆盖了原来的),而不再是比较类在堆内存中的存放地址了。 equals方法,比较两个对象是否相等,比较的是地址(初始)和值...原创 2018-08-28 15:12:33 · 253 阅读 · 0 评论 -
java内部类总结
内部类概述 分为成员内部类,静态内部类,局部内部类,匿名内部类 内部类访问特点 * a:内部类可以直接访问外部类的成员,包括私有。 * b:外部类要访问内部类的成员,必须创建对象。 * 外部类名.内部类名 对象名 = 外部类对象.内部类对象; 1.成员内部类: public class Test { public static void main(String[]...原创 2018-08-27 21:08:05 · 226 阅读 · 0 评论 -
java抽象类与接口总结
1.抽象类: 抽象类特点 a:抽象类和抽象方法必须用abstract关键字修饰 abstract class 类名 {} public abstract void 方法名(); b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口 c:抽象类不能实例化那么,抽象类如何实例化呢? 按照多态的方式,由具体的子类实...原创 2018-08-27 12:29:06 · 286 阅读 · 0 评论 -
java多态总结
简单的说就是父类引用指向子类对象.一种方法, 多种实现. 规则: 成员变量:编译看左边(父类),运行看左边(父类); 成员方法:编译看左边(父类),运行看右边(子类,动态绑定). public class Polymorphic { public static void main(String[] args) { /*Father f = new Son(); //父类引用...原创 2018-08-26 20:59:53 · 374 阅读 · 0 评论 -
java代码块总结
在java中将代码用{}括起来的部分叫做代码块,分为局部代码块,构造代码块,静态代码块,同步代码块。 局部代码块 :在方法中出现;限定变量生命周期,及早释放,提高内存利用率 构造代码块 (初始化块): 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行 静态代码块 : 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行...原创 2018-08-26 17:18:30 · 226 阅读 · 0 评论 -
shell编程、JVM、大数据等相关试题解析
1.运行一个脚本时 . /bin/script.sh 和 /bin/script.sh 两种方式有何区别? 带点号的,是在当前bash进程中运行,不带点号的是在一个新的bash子进程中运行 2.脚本中直接定义一个变量 a=3 和 export a=3 有何区别 a=3在所运行的bash进程环境中有效 export a=3 在所运行的bash进程和父进程中都有效 3.shell脚本中如...原创 2019-02-26 11:23:11 · 683 阅读 · 0 评论