牛客的AI模拟面试(1)
1、请解释一下String为什么不可变?
String是final修饰,不可变,同时string底层是字符数组也是final修饰,这样做首先是安全,比如hashset中用string做为键,不会出现string变化,导致违反唯一键。另外节约内存。
2、请说明一下final, finally, finalize的区别。
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法。
3、输入一棵二叉树,判断该二叉树是否是平衡二叉树。
public static boolean IsBalanced_Solution(TreeNode root) {if(root == null){return true;}int left = iterTree(root.left);int right = iterTree(root.right);if(Math.abs(left-right) > 1){return false;}return true;}private static int iterTree(TreeNode root) {if(root == null){return 0;}int left = iterTree(root.left);int right = iterTree(root.right);return left > right ? (left+1) : (right+1);}
1、请说明类和对象的区别
类是对象的抽象,对象是类的实例
2、请说明Overload和Override的区别,Overloaded的方法是否可以改变返回值的类型?
重载发生在一个类中,在编译期绑定,方法名相同而参数列表不同;
重写发生在父子类中,在运行期绑定,方法名相同,参数列表相同,方法体不同,主要遵循一大二小三相等:
访问修饰符要大于或等于父类,
返回类型如果是基本数据类型的话,要与父类相同,如果是引用类型的话,小于过等于父类;
抛出异常要比父类小或等于。
3、输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
https://blog.csdn.net/qq_33575542/article/details/81054108
&是二进制“与”运算,参加运算的两个数的二进制按位进行运算,运算的规律是:
0 & 0=0
0 & 1=0
1 & 0=0
1 & 1=1
对于参加运算的数要换算为二进制进行运算,例如3 & 2的结果是2,过程如下:
3 & 2
=0111 & 0010
=0010
=2
思路:
把一个整数和它减去1的结果做位与运算,相当于把它最右边的1变成0。
所以,这种方法,只要这个整数有几个1,就做几次这样的操作。
private static int NumberOf1(int n){int count = 0;while(n!=0){count++;n = n&(n-1);}return count;
}
牛客的AI模拟面试(1)相关推荐
- 有三AI模拟面试服务上线,一对一服务助你求职
文/编辑 | 言有三 各位粉丝朋友们,今天正式上线有三AI模拟面试服务,在这里会给大家提供有偿的模拟面试,针对简历写作,项目技能,求职方向等做相关辅导. 模拟面试服务内容 要找到一份好工作可以是一个非 ...
- 牛客网《BAT面试算法精品课》学习笔记
目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...
- Java里面jvr,寻找下一个结点 牛客网 程序员面试金典 C++ java Python
寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...
- 二进制小数 牛客网 程序员面试金典 C++ Python
二进制小数 牛客网 程序员面试金典 题目描述 有一个介于0和1之间的实数,类型为double,返回它的二进制表示.如果该数字无法精确地用32位以内的二进制表示,返回"Error". ...
- 原串反转 牛客网 程序员面试金典 C++ Python
原串反转 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniS ...
- 空格替换 牛客网 程序员面试金典 C++ Python
空格替换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个方法,将字符串中的空格全部替换为"%20".假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实 ...
- 集合栈 牛客网 程序员面试金典 C++ Python
集合栈 牛客网 程序员面试金典 C++ Python 题目描述 请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈.该数据结构应支持与普通 ...
- 判断直线相交 牛客网 程序员面试金典
判断直线相交 牛客网 程序员面试金典 题目描述 给定直角坐标系上的两条直线,确定这两条直线会不会相交. 线段以斜率和截距的形式给出,即double s1,double s2,double y1,dou ...
- 回文链表 牛客网 程序员面试金典 C++ Python
回文链表 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个函数,检查链表是否为回文. 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文. 测试样例 ...
最新文章
- BGP基本实验拓扑图--《献给学习的人》
- 【云图】如何制作附近实体店的地图?-微信微博支付宝
- D0rado与javascript
- android SQLiteOpenHelper 使用
- ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序
- 四元数,欧拉角,旋转矩阵相互转换
- centos 搭建Jenkins
- qt creator 设置按键颜色_Qt编写自定义控件30-颜色多态按钮
- word2vec数学原理详解
- 高等代数——大学高等代数课程创新教材(丘维声)——3.3笔记+习题
- vba excel 画折线图
- 关于苹果侵权邮件反馈邮件范文
- 设计模式(四) 策略模式
- PHP实训笔记,Java实训笔记(八)之mysql
- python --通过urlretrieve下载MP4文件
- 【rzxt】详细了解taskmgr.exe进程的基本信息
- WPF中的自定义控件模板
- 关于课题的一点思考(基于多生理信号的情绪识别)
- (logN)²是O(N)的
- Dubbo,入门Demo案列使用,框架原理,Zookeeper的使用,安装监控中心和管理控制台,service,provider,comsumer三个项目的Demo
热门文章
- html5移动端轮播图特效,支持移动端的纯js轮播图插件awesome-slider
- WampServer图标为黄色,无法启动的解决办法及思路
- 技术的魅力在于融汇惯通
- 【ts】typeScript高阶:any和unknown
- 数据概览神器—Pandas-profiling
- python kivy 手势识别基本代码
- 路由器与三层交换机的区别
- Ruby+Watir经验谈: Understanding Watir
- cok服务器文件,前端开发之Node.js篇——搭建自己的网站服务器文件管理(一)...
- valgrind详细说明