![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
面试题
小布丁value
这个作者很懒,什么都没留下…
展开
-
HashMap默认加载因子为什么选择0.75?(阿里)
HashMap默认加载因子为什么选择0.75?Hashtable 初始容量是11 ,扩容 方式为2N+1;HashMap 初始容量是16,扩容方式为2N;阿里的人突然问我为啥扩容因子是0.75,回来总结了一下; 提高空间利用率和 减少查询成本的折中,主要是泊松分布,0.75的话碰撞最小,HashMap有两个参数影响其性能:初始容量和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子是哈希表在其容量自动扩容之前可以达到多满的一种度量。当哈希表中的条目数超出了加载因转载 2021-07-23 19:43:12 · 147 阅读 · 0 评论 -
剑指 Offer 39. 数组中出现次数超过一半的数字
数组中出现次数超过一半的数字方法一:哈希表方法二:摩尔投票法方法一:哈希表哈希表:1.我们使用哈希映射(HashMap)来存储每个元素以及出现的次数。key 表示匀速,vlaue表示次数2.我们用一个循环遍历数组nums 并将数组中的每个元素加入到哈希映射中。3.之后我们遍历哈希映射中所有的元素,返回出键最大的值。4.可以是使用遍历数组nums时候使用打擂台的方法,维护最大的值,省去了最后对哈希表的映射时间复杂度: O(n)空间复杂度:O(n)public class Day071原创 2021-07-19 18:27:05 · 104 阅读 · 1 评论 -
调整数组顺序使奇数位于偶数前面
代码思路:不开辟新内存:双指针,left 指向奇数,right指向偶数代码实现:class Solution { public int[] exchange(int[] nums) { int left=0, right=nums.length-1; while(left<right){ if(nums[left]%2!=0) { left++; continue.原创 2021-07-18 21:53:30 · 51 阅读 · 0 评论 -
旋转数组中的最小数字(中)
无重复元素if numbers[mid]>numbers[right] 说明前面有序,最小值一定在后面left=mid+1if numbers[mid]<numbers[right] 说明后半部分一定有序,最小值在前面right=mid;模拟整个过程会发现当 left==right时退出循环找到numbers[left]即位最小值有重复元素如果有重复元素numbers[right]=numbers[left]right–;不等的时候又按照无重复元素进行判断即可.原创 2021-07-18 21:25:15 · 49 阅读 · 1 评论 -
二维数组的查找
代码实现public class Day0718 { public static void main(String[] args) { int [] nums={1,3,5,7,8,9}; int recur = recur(0, nums.length - 1, 7, nums); System.out.println(recur); } public static int recur(int begin,int end,i...原创 2021-07-18 20:19:57 · 50 阅读 · 0 评论 -
二分查找(递归和非递归)
代码思路:1.初始化指针,begin=0,end=nums.length-1;2.当nums[mid]<target时:begin=mid+1;当nums[mid]>target时: end=mid-1;nums[mid]= target时:结束循环,返回mid;3.考虑特殊形况 left可不可以等于right:可以,但数组中只有一个元素时,如果没有等于这个条件,就会漏掉一个元素非递归实现代码如下时间复杂度O(logN);空间复杂度O(1);class Solution .原创 2021-07-18 19:53:34 · 353 阅读 · 0 评论 -
冲刺秋招面试汇总
https://kdocs.cn/l/ck6hwyrP9IOZ原创 2021-07-16 19:21:28 · 67 阅读 · 0 评论 -
力扣5最长回文字符串
方法一动态规划1.先判断头和尾是否相等,相等了判断里面的整个字符串是不是回文字符串1.状态:dp[i][j] 表示字串是否为回文字串2.得到状态转移方程:dp[i][j] =(s[i] == s[j]) and dp[i+1][j-1]3.边界条件:j-1-(i+1)+1<2,整理得 j-i<34.初始化 : dp[i][i] = true5.输出:在得到一个状态为 true的时候,记录起始位置和长度,填表完成以后在截取代码如下:但是效率不高时间复杂度o(N^2)空.原创 2021-07-12 17:28:25 · 119 阅读 · 0 评论 -
JAVA基础面试题总结
@https://blog.csdn.net/ThinkWon/article/details/104390612?转载 2021-05-20 15:41:56 · 53 阅读 · 0 评论 -
静态变量和非静态变量的区别
1.static 修饰变量定义:在Java中,静态变量和实例变量可以统称为成员变量。静态变量也叫做类变量,独立于方法之外的变量,有static修饰。实例变量同样独立也是独立于方法之外 的变量,但没有static修饰。2.静态变量和实例变量的区别静态变量不属于某个实例对象,而是属于整个类。只要程序加载了类的字节码,不用创建任何实例对象,静态变量就回被分配空间,静态变量就可以被使用了实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间`,才能使用这个实例变量在静态上下文原创 2021-05-20 14:04:51 · 125 阅读 · 0 评论 -
学生成绩管理系统增删改查功能
1.Windows系统下基于idea+maven+jdbc+swing+mysql学生成绩管理系统链接:https://pan.baidu.com/s/1fF218eCHsom0bq5DaB9AnA提取码:zqug复制这段内容后打开百度网盘手机App,操作更方便哦原创 2021-05-19 16:27:48 · 695 阅读 · 0 评论 -
java类的初始化顺序
类的初始化顺序:静态变量静态块实例变量实例块构造函数public class Test1 { // 静态变量 public static String staticField = "静态变量"; // 变量 public String field = "变量"; // 静态初始化块 static { System.out.println(staticField); System.out.println("静态原创 2021-05-18 13:29:56 · 65 阅读 · 0 评论 -
面试高频考点:重写和重载的区别
重写和重载的区别定义:重载和重写都是实现多态的方式,区别:重载:编译时多态重写:运行时多态一,重写的特点:1.发生在父类与子类之间2.方法名相同,参数列表相同3.子类访问限定符 >= 父类访问限定符 (public>protected>default>private)4.重写方法一定不能抛出新的检查异常或者比被重写方法更宽泛的异常二,重载的特点1.同一个类中2.方法名相同参数列表不同注意无论重载还是重写都不以返回类型作为判断标准重写public cla原创 2021-05-12 12:18:21 · 77 阅读 · 1 评论 -
Object 类中toString()的使用。
Object 类中toString()的使用。1.当我们输出一个对象的引用时,实际上就是调用当前对象toString()2.Object类中toString的定义public String toString(){return getClass().getName()+"@"+Integer.toHexString(hashCode());}3.String Date file,包装类都重写了Object类中的toString()方法使用在调用对象toString()时,返回“实体内容信息”4原创 2021-04-09 15:35:08 · 120 阅读 · 0 评论 -
字符旋转简单
字符串旋转:给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(都不为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同返回true。解法一秒解A=“abcd”, A+A=“abcdabcd”如果B是旋转后得到的,那么B一定是属于A+A.contains发方法用来判断集合中是否有某元素,若有则返回true无则返回false原创 2021-03-26 09:55:58 · 98 阅读 · 0 评论