![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
文章平均质量分 89
种子选手席同学
这个作者很懒,什么都没留下…
展开
-
Java基础知识查缺补漏(map、数组、list)
Map的new为什么是Map map=new HashMap;而不是new MapMap是接口,HashMap是Map的一种实现。接口不能被实例化。Map map=new HashMap(); 就是将map实例化成一个HashMap。这样做的好处是调用者不需要知道map具体的实现,map接口与具体实现的映射java帮你做了。...原创 2018-12-08 21:12:44 · 582 阅读 · 0 评论 -
[剑指offer] 顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路先得到矩阵的行和列数,然后依次旋转打印数据,一次旋转打印结束后,往对角分别前进和后退一个单位。要注意单行和单列的情况...原创 2019-03-02 19:47:00 · 112 阅读 · 0 评论 -
[剑指offer] 丑数
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解题思路判断一个数是不是丑数,最简单的方法就是让这个数不断除以2,3,5。要求第N个丑数,只要从1开始,依次判断每个数是不是丑数,如果是,则相应的序号加1,直到序号为N,就是我们要的丑数了。但是这种方法时...原创 2019-03-05 20:30:30 · 97 阅读 · 0 评论 -
[剑指offer] 把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路先将数组转换成字符串数组,然后对字符串数组按照规则排序,最后将排好序的字符串数组拼接出来。关键就是制定排序规则:若ab > ba 则 a > b若ab < ba 则 a <...原创 2019-03-05 16:54:39 · 94 阅读 · 0 评论 -
[剑指offer] 连续子数组的最大和
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度...原创 2019-03-05 15:19:24 · 98 阅读 · 0 评论 -
[剑指offer] 最小的K个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解题思路两种方法:法1:先对数组排序,然后取出前k个法2:利用最大堆保存这k个数,每次只和堆顶比,如果比堆顶小,删除堆顶,新数入堆。参考代码法1:import java.util.ArrayList;import java.util.Arrays;pu...原创 2019-03-05 11:12:44 · 92 阅读 · 0 评论 -
[剑指offer] 数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路三种解法:法1:借助hashmap存储数组中每个数出现的次数,最后看是否有数字出现次数超过数组长度的一半;法2:排序。数组排序后,如果某个数字出现次数超过数组的长度...原创 2019-03-05 10:21:32 · 124 阅读 · 0 评论 -
Java中数组、List、Set相互转换
数组转ListString[] staffs = new String[]{"Tom", "Bob", "Jane"};List staffsList = Arrays.asList(staffs);需要注意的是, Arrays.asList() 返回一个受指定数组决定的固定大小的列表。所以不能做 add 、 remove 等操作,否则会报错。List staffsList = Arra...转载 2019-01-14 21:26:28 · 112 阅读 · 0 评论 -
java中不同类型数组的默认值
1、int类型定义的数组,初始化默认是02、String类型定义的数组,默认值是null3、char类型定义的数组,默认值是0对应的字符4、double类型定义的数组,默认值是0.05、float类型定义的数组,默认值是0.0而且不仅仅是数组第一个元素有默认值,所有的数组的默认值和上面的规则一样八大基本数据类型的默认值:boolean falsechar ‘/uoooo’(null...原创 2019-01-11 16:32:26 · 770 阅读 · 0 评论 -
类型转换
两个int类型数值相除 用double接收时 应写为int a=1;int b=2;double d=(double)a/b不加(double)不会报错 但是d会为0.0转载 2018-12-14 22:47:31 · 116 阅读 · 0 评论 -
关于Java中length、length()、size()的区别
以前总是觉得自己好像会了,但是某天忽然面对这个笔试题还是会恍惚一下,混淆和答错的几率也很大,不知道有没有其他人像我一样的。所以今天把这个问题记一下,希望印象更深刻。首先区分一下length和length();length不是方法,是属性,数组的属性;public static void main(String[] args) { int[] intArray = {1,2,3}; Sy...转载 2019-03-03 22:38:51 · 109 阅读 · 0 评论