java编程
明月别枝
分享经验,一起学习,一起进步
展开
-
编程题:遍历数组每一项,生成新数组
遍历数组每一项,生成新数组var arr = [[1, 2, 3],[[[[[[11]]]]]], [4, [5]], [6, [7, 8, 9,[10]]]];得到 brr: [1, 2, 3, 4, 6,5, 7, 8, 9, 10,11]//把arr的每个数值存放到新的数组brr里;var arr = [[1, 2, 3],[[[[[[11]]]]]], [4, [5]], [6,...原创 2019-10-14 14:46:26 · 2365 阅读 · 0 评论 -
一种简单交换排序
1、目前还没有发现什么错误,已经测试过不同的数据,输出结果完全没有问题,于是我就开始分析每一次的步骤。 1.它好像不是冒泡排序(它每次的顺序都是有变化的,而且是两两相比) 2.也不像是快速排序(显然不是,需要用到递归) 3.也不像是插入排序(虽然有比较,但是每次插入之后,原本后面的元素顺序没有变化) 4.选择排序(每次比较选最小,放在最前面,也不是) 5.感觉其他排序...原创 2018-08-27 10:11:45 · 1430 阅读 · 10 评论 -
快速简单理解——直接插入排序
这是网上最常见的插入排序的动图,你能看出什么规律来吗?看看你得出的规律是否跟我得出的规律一样?请往下看:仔细看图,我们可以得出一个规律: 1红色框的元素,是最新的一个数,在这里我们不妨叫它a【i】,(i从0到n-1),并把它放在temp里。temp=a【i】;最下面我会讲讲为什么要把a【i】赋值给temp;为什么不能直接用a【i】来比较;原创 2017-08-09 15:18:49 · 1209 阅读 · 0 评论 -
快速简单理解——希尔排序
希尔排序:也是属于插入排序的一种;所以它同样拥有插入排序的规律:以下面 这是网上最常见的插入排序的动图,你能看出什么规律来吗?看看你得出的规律是否跟我得出的规律一样?请往下看:仔细看图,我们可以得出一个规律: 1红色框的原创 2017-08-10 23:16:30 · 1373 阅读 · 0 评论 -
编程题(度度熊回家最短距离)
一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。 但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 输入描述: 输入一个正整数N, N <= 50。接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于原创 2017-07-25 18:00:21 · 1252 阅读 · 0 评论 -
java基础(二)笔记: Java 基本数据类型 Java 变量类型 Java 修饰符
本渣渣刚学,里面的内容自己理解的,可能有偏差;Java 基本数据类型变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。 Java 的两大数据类型:内置数据类型引用数据类型 自动类型转换...原创 2019-01-18 14:49:53 · 249 阅读 · 0 评论 -
Java基础(一)笔记:基础语法,对象和类
本渣渣刚学,里面有的是自己的理解,可能会误导人;编写Java程序时,应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的...原创 2019-01-16 11:38:59 · 215 阅读 · 0 评论 -
java基础(三)笔记:IO流 继承 多态 接口
IO流的分类Java IO的类型虽然java IO类库庞大,但总体来说其框架还是很清楚的。从是读媒介还是写媒介的维度看,Java IO可以分为:输入流:InputStream和Reader输出流:OutputStream和Writer 而从其处理流的类型的维度上看,Java IO又可以分为:字节流:InputStream和OutputStream字符流:Reader和W...原创 2019-02-18 15:52:07 · 317 阅读 · 0 评论 -
(编程题)我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?public class Solution { public int RectCover(int target) { if (target==1){ return 1; } if(target==0)...原创 2019-02-18 17:00:07 · 391 阅读 · 0 评论 -
冒泡排序
2.比较相邻的元素。不符合条件,就交换他们两个。冒泡排序最坏情况的时间复杂度是O(n²) 冒泡排序属于交换排序,稳定,空间复杂度为O(1)public class maopao { public int[] maopao(int shuzu[],int n) {//n为数组长度; for (int j = 0; j< n-1;j++) {原创 2017-08-06 18:36:52 · 275 阅读 · 0 评论 -
快速排序
最坏时间复杂度O(n^2),最佳时间复杂度O(nlog2n),空间复杂度O(log2n)~O(n),不稳定package suanfa;public class kuaisu { public void kuaisu(int a[],int left,int right){ if(left>right){ return; }原创 2017-08-07 16:17:16 · 258 阅读 · 0 评论 -
选择排序
package suanfa;public class xuanze { public void xuanze(int a[],int n){ for (int i = 0; i < n; i++) { int temp; int min=a[i]; int index = i;//等于其他值无效。原创 2017-08-07 18:21:26 · 252 阅读 · 0 评论 -
编程题(懂二进制)
题目描述 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 示例1: 输入: 1999 2299 输出: 7我是思路: 1.n分为两种情况,一种情况是当n为0时,所有二进制位为0;第二种情况当n不为0时,需要求每个二进制位的数,也就是余数;同理m也是这么理解的2.求出他们的二进制数(虽然是3原创 2017-07-29 15:54:10 · 1294 阅读 · 0 评论 -
编程题(每月小兔子对数)
题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子,假如兔子都不死,问n个月时兔子的数量,n为键盘读入的正整数。注:这涉及到的是斐波那契数列,公式:S(n-1)+S(n-2)=S(n);所谓斐波那切数列,又称黄金分割数列,是指这样的一个数列0、1、1、2、3、5、8、13、21、34。第三项是前两项之和;package ceshi;public clas原创 2017-07-29 17:30:37 · 1200 阅读 · 0 评论 -
编程题(求范围内素数及个数)
1.素数的特点,不存在公因数的自然数,从2,3,5,7……2.要知道一个数字是不是素数,则判断这个数字是否能被其他数字整除,假设该数字是n,则将n除以2(到n-1),一共除了n-2次3.如果不能被整除的次数是n-2次,则该数字是素数大家可能对素数2感到疑惑,在本代码中不用被特殊对待。当i等于2时,2%2=0;2不能被整除的次数是0; 又因为count=i-2;也就是0=2-2;所以符合条件2为素数原创 2017-07-29 20:33:01 · 5415 阅读 · 4 评论 -
编程题(之字形打印矩阵)
对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。 给定一个整数矩阵mat,以及他的维数n * m,请返回一个数组,其中元素依次为打印的数字。 测试样例: [[1,2,3],[4,5,6],[7,8,9],[10,11,12]],4,3 返回:[1,2,3,6,5,4,7,8,9,12,11,10] 首先,我们可以发现返回值输出的规律1.当n为0, 2, 4原创 2017-07-30 19:53:36 · 873 阅读 · 1 评论 -
编程题(顺时针旋转矩阵)
有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3 返回:[[7,4,1],[8,5,2],[9,6,3]]import java.util.*;public class Rotate {原创 2017-07-31 12:49:45 · 1096 阅读 · 0 评论 -
编程题(买帽子求第三便宜价格)
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?输入描述: 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)输出描述: 如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子: 10 10 10 10 10 20 20 30原创 2017-07-25 00:56:20 · 1796 阅读 · 0 评论 -
二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。需要好好仔细审题,是让我们判断数组中是否含有该整数。 不是让我们排序!!!当时没注意看题,想了老半天怎么排序;|||||||说一下思路: array【i】【j】 规律:可以利用二分法的思想去做这个题目; 1.左下原创 2017-08-19 11:51:42 · 225 阅读 · 0 评论 -
编程题(最大差值)
有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。给定数组A及它的大小n,请返回最大差值。测试样例:[10,5],2返回:0以下是我的代码:import java.util.*;public class LongestDistance { public int getDis(int[] A, int n) { int max=0,cha=0;原创 2017-07-27 22:22:13 · 792 阅读 · 0 评论