- 博客(6)
- 收藏
- 关注
转载 旋转有序数组
要求 给定一个没有重复元素的旋转数组(它对应的原数组是有序的),求给定元素在旋转数组内的下标(不存在的返回-1)。例子有序数组{0,1,2,3,4,5,6,7}对应的旋转数组为{3,4,5,6,7,0,1,2}(左旋、右旋效果相同)。查找元素5,返回结果2; 查找元素8,返回结果-1。变形 旋转有序数组找最小值下标分析 可以轻易地想到遍历一遍O(n)时间可以得到结果,但是并不是最好的结果;利用有序的特点,可以轻易的想到二分查找的方法。经过旋转后的数组总是可以分...
2020-06-11 23:31:03
666
原创 求某数的根号,牛顿迭代法
求m的根号,首先任意指定一个x递推公式:Xn+1 = (X+m/X)/2package Newton;/** * 返回根号n,精确度小于0.000001 * @author guoyujie * */public class Main { public static void main(String[] args) { System.out.println(new Newton().sqrt(25)); }}//牛顿迭代法class Newton{ public d
2020-06-11 22:55:34
1599
原创 关于GCRoots
今天面试官问我GCRoots是树还是森林,以前没考虑过这个问题,记录一下结论:GCRoots是森林,既然是roots,那么就是root的集合,肯定是森林GC Roots的组成虚拟机栈中引用的对象 方法区中类静态属性引用的对象 方法区中常量引用的对象 本地方法栈中JNI(Native方法)引用的对象首先注意,GCRoots是由对象组成的,并不是引用,以上四种是当前一定存活的对象森林的组成:首先将以上的对象作为根节点,将堆中被这个对象引用的对象加入树中,最后形成森林。如:r.
2020-06-11 16:40:48
459
原创 Java随机打乱数组的方法
看面经里看到过这一题,然后自己查了一下,记录一下写一个shuffle函数打乱数组方法一随机选择从当前下标到数组末尾的一个数进行交换public class Main { public static void main(String[] args) { int[] nums = {1,2,3,4,5,6}; shuffle(nums); for(int n:nums) System.out.print(n+" "); } public static void shuf
2020-06-11 16:08:09
1141
原创 19跨考中科大计算机408经验贴
写一下自己跨考408的一年,希望可以帮到需要的学弟学妹们~简单介绍一下个人情况:本科双非,专业是信息与计算科学,跨考中科大计算机科学技术专业,408里只学了一本数据结构,另外三本书自学,本科没项目,英语没什么基础,高中不学英语考研成绩:总分383,数一124,政治69,英语73,408专业课117今年奇数年,408稍难,题目很新颖;数学比去年简单一点...
2019-03-20 11:08:57
22893
51
原创 JAVA-Comparable接口
TreeSet实现类中的元素是无序的,但是可以按照一定的顺序遍历,当我们自定义一个类,就需要用Comparable接口或者Comparator接口覆写其中的方法来实现元素之间的比较排序。用Person类为例(需要覆写hashCode()和equals()方法)**1.Comparable接口** 第一步,Person类implements接口 第二步,在Person类中覆写compareTo()
2017-09-18 22:57:17
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人