自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_37232304的博客

这的水很深

  • 博客(57)
  • 收藏
  • 关注

原创 leecode07整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解法:对初始数字进行%10的运...

2020-01-20 22:38:59 189

原创 leecode01俩数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法:遍历每个元素 x...

2020-01-20 19:26:27 216

原创 NowCoder发现某些整数可以拆分成两个不同的素数的和。例如7=2+5、20=3+17=7+13等。 他想知道每个正整数都有几种拆分的方法,你能帮他解决吗?

可以使用穷举法 public static void main(String[] args) { int q=100000+1;//根据题目的要求确定数组大小 int a[]=new int[q];//用来表示下标数的素数结果 boolean []tag=new boolean[q];//表示当前下表的数是不是素数 int []...

2019-11-23 23:58:03 2169

原创 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数

思路从前往后遍历,最大的连续子序列的和是由当前元素和之前的最大连续子序列的和叠加在一起形成的。如果之前的最大连续子序列的和大于零,我们可以继续累加,如果小于零,则需要舍去之前的子序列,重新从当前的数字开始累加。时间复杂度为O(n) public static int FindGreatestSumOfSubArray(int[] array) { int end=Integer.MIN_V...

2019-11-23 23:49:27 164

原创 得到杨辉三角的某个值

import java.util.Arrays;import java.util.Scanner;public class YangHuiSJ { public static void YHsj(int n,int m){ int [][]a=new int [n][n];//使用多维数组对整个杨辉三角进行储存 for(int i=0;i<n;i...

2019-11-23 16:32:30 539

原创 打印三角形与正向三角形

正向 public static void sanjiao(int n){ for(int i=0;i<n;i++){ for(int m=0;m<i;m++){ System.out.print(" "); } for(int j=i;j<2*n-1-...

2019-11-23 16:31:43 205

原创 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方

public double Power(double base, int exponent) { int tag=exponent; double sum=1.0;if(exponent<0){ tag=-exponent;}for(int i=0;i<tag;i++){ sum=base*sum;}if(exponent&l...

2019-11-22 16:19:58 218

原创 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一个1开始的所有位都取反了。这个时候如果我们再把原来的整数和减去1之后的结果做与运算,从原来整数最右边一个1那一位开始所有位都会变成0。如1100&1011=1000.也就是说,把一个整数减去1,再和原整数做...

2019-11-22 16:08:49 182

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

f(n)=f(n-1)+f(n-2)+…+f(1)f(n-1)=f(n-2)+…f(1)得:f(n)=2*f(n-1) public static int JumpFloor(int target) {if(target==1){ return 1;}if(target==2){ return 2;}return 2*JumpFloor(target-1);...

2019-11-22 16:01:10 247

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

本质上也还是一个斐波那契问题跳到第n阶,相当于求跳到第n-1与n-2阶;if(target==1){ return 1;}if(target==2){ return 2;}return JumpFloor(target-1)+JumpFloor(target-2);...

2019-11-22 15:46:15 228

原创 斐波那契数列

递归实现`public static int fibonacci(int n) {if(n==1){ return 1;}if(n==2){ return 1;} return fibonacci(n-1)+fibonacci(n-2); }非递归 int[] fib = new int[40]; fib[0] = 0; ...

2019-11-22 15:40:22 171

原创 从尾到头打印单链表

import java.util.ArrayList;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ListNode cur=listNode; ArrayList<Integer...

2019-11-22 15:21:28 114

原创 替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { String s1 = str.toString(); Str...

2019-11-22 14:57:46 102

原创 俩个栈实现队列

实现代码如下public class twostack { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.pu...

2019-11-22 14:56:37 103

原创 中兴捧月-数字化婚配

一、标题: 数字化婚姻配对尝试二、题目:建立一个模型,来模拟推导社会男女择偶过程。为了模型简化,一个人的特性指标有三个,这里假设为财富、样貌、品格,每个指标均可取值1-100之间任意数字。同样也对这3项指标有自己的需求。这3个需求值取值范围都在1-98间,当然三者的和必须为100.所以任意一个人可以用以下数组来表述:G(A、B、C、A1、B1、C1)G代表男,M代表女。...

2018-07-24 23:33:45 435

原创 PriorityQueue

PriorityQueue(优先级队列),其本质是一个小根堆,以数组的形式储存 成员变量//默认数组大小private static final int DEFAULT_INITIAL_CAPACITY = 11;//储存数据的数组private transient Object[] queue;//当前数组长度private int size = 0;//被改变次数priva...

2018-07-22 17:29:14 193

原创 ArrayList与LinkedList

ArrayList ArrayList是一个其容量能够动态增长的动态数组。它继承了AbstractList,实现了List、RandomAccess, Cloneable, java.io.Serializable。 基本的ArrayList,长于随机访问元素,但是在List中间插入和移除元素时较慢。ArrayList有三种遍历方式 分别是索引值遍历,迭代器遍历还有for循环遍历 遍...

2018-07-22 15:28:07 187

原创 hashmap与hashtable

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。HashMap HashMap具有以下特点: 基于数组实现,数组里的元素是一个单向链表。 键不可以重复,值可以重复,键、值都可以为null 非线程安全 HashMap的成员变...

2018-07-21 15:19:44 182

原创 hashmap与hashtable的区别

1,俩者的初始大小与扩容方式不同 static final int DEFAULT_INITIAL_CAPACITY = 1 &lt;&lt; 4; // 16 Hashmap初始大小为16 public Hashtable() { this(11, 0.75f);Hashtable中初始大小为11Hashmap的扩容方式是二倍扩容。 Hashta...

2018-07-04 12:36:37 174

原创 pullze

初始正方形中的带圆圈的数字是可以移动到沿着行的其他正方形的标记。 在拼图的每个步骤,可以移动标记的正方形中由当前占据的整数指示的方格数。 标记可以沿着该行向左或向右移动,但可以不移动经过任一端。 例如,唯一合法的第一步是将标记向右移动三个方格,因为没有空间向左移动三个空格。拼图的目标是将标记移动到行的远端的0。要求: 用递归 或 栈或者队列实现编程。 如果圆圈能够移动到最后0的位...

2018-06-20 14:47:42 2318 1

原创 泛型实现单链表

class testlink1&amp;lt;T&amp;gt;{ class Entry&amp;lt;T&amp;gt;{ T data; Entry&amp;lt;T&amp;gt; next; public Entry(){ this.data=null; this.next=null; } publ...

2018-06-01 13:39:05 169

原创 泛型与通配符

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。那么,我们为什么要使用泛型呢? 首先,我们写一个通用类型的栈class ObjectStack{ private Object[] elem; private int top;// public ObjectStack(){ this(10); } public ...

2018-06-01 00:55:08 643

原创 java中的类加载器

类从被加载到内存中开始,到卸载出内存为止。它的生命周期总共七个阶段: 加载—-&gt;验证—-&gt;准备—-&gt;解析—-&gt;初始化—-&gt;使用—-&gt;卸载。要加载一个类,我们首先必须要找到他的.class文件,那么我们怎么区分.class文件? SUN公司规定了每个class文件都必须以0xCAFEBABE为标志开头。 这个标志被称为魔数。当我们找到所需要的.cla...

2018-05-27 02:04:16 168

原创 String、StringBuffer与StringBuilder与java中的反射

StringString str1=&amp;quot;hello&amp;quot; str1=str1+&amp;quot;world&amp;quot;;//额外生成新的对象 System.out.println(str1);汇编上述代码 通过汇编可以看出 可以看出JVM先是把str1转换为StringBuilder对象,然后调用了StringBuilder中的append方法进行对str1进行修改,然后指向新的str1,最后在使用Str...

2018-05-27 00:11:15 433

原创 java抽象类,密封类与接口

抽象类 抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。 那么什么叫抽象方法呢?在所有的普通方法上面都会有一个“{}”,这个表示方法体,有方法体的方法一定可以被对象直接使用。而抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字ab...

2018-05-24 23:27:28 373

原创 接口练习作业

作业要求 模拟银行存取款 1、 创建基接口BankAccount,包含 存款方法playIn(), 取款方法withdraw(), 查询余额方法getBalance()。 2、 创建接口ITransferBankAccount(继承基接口BankAccount) 包含转账方法transferTo(). 3,创建类CurrentAccount ...

2018-05-24 23:17:55 643

原创 继承与多态

继承继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 在Java之中,如果要实现继承的关系,可以使用如下的语法:class 子类 extends 父类 {}子类又被称为派生类; 父类又被称为超类(Super Class)。继承的实现class Base{//基类 public int ma...

2018-05-23 13:59:06 115

原创 归并排序

将两个的有序数列合并成一个有序数列,我们称之为”归并”。归并排序:将待排序的数列分成若干个长度为1的子数列,然后将这些数列两两合并;得到若干个长度为2的有序数列,再将这些数列两两合并;得到若干个长度为4的有序数列,再将它们两两合并;直接合并成一个数列为止。这样就得到了我们想要的排序结果。 /*俩俩归并子序列*/public static void merge(int []a...

2018-05-20 17:41:51 126

原创 堆排序

堆是一种重要的数据结构,为一棵完全二叉树, 底层如果用数组存储数据的话,假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2。 堆排序最重要的是构建大顶堆,然后让大顶堆的0号元素(整个堆的最大元素)与最后一个元素交换,然后通过不断调整大顶堆,不断交换,直到数组有序。堆排序步骤: 1,构建大顶堆。(从...

2018-05-18 14:24:45 151

原创 快速排序的几种优化方式

快速排序的几种优化方式1,随机选取基准的方法: /*进行第一趟快速排序 * */ public static int partion(int[] array,int low,int high){ int tmp = array[low]; while(low&amp;lt;high){ while(low &amp;lt;...

2018-05-18 01:37:51 229

原创 快速排序

快速排序思想 1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但最的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素; 2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边; 3.对左右两个分区重复以上步骤直到所有元素都是有序的。快速排序的稳定性:不稳定 时间复杂度: 数组无序 最好情况 O(nlog2n) 数组有序...

2018-05-16 12:01:11 223

原创 shell排序

Shell排序可以理解为插入排序的变种,它充分利用了插入排序的特点:数据越有序效率越高。Shell排序的特点是,按一定的步长(为了保证效率,步长一般取5,3,1)抽取序列中的子元素,构成子序列,然后对子序列进行插入排序,如此循环直到步长为1,此时整个序列作为整体进行插入排序,由于之前的步骤已经保证子序列的有序性,故而,最后的插入排序时间复杂度很小。public static void sh...

2018-05-15 20:55:17 1369

原创 BF算法与KMP算法

BF算法思想: 代码实现:public class BF { public static int bf(String str,String sub){ if(sub.length()&gt;str.length()){//如果sub长度比str大,则直接返回-1 return -1; } int i=...

2018-05-13 02:36:57 239

原创 俩个队列实现一个栈

首先定义一个队列的类class queuelink{ int []elem; int front;//队头 int rear;//队尾 int usesize=0;//当前循环队列的有效数据个数 int allsize=10;// public queuelink(){ this(10); } public ...

2018-05-11 12:29:30 212

原创 优先级队列

优先级队列是指按照数据优先级进行存储的队列。class priolink{ Entry head; public priolink(){ this.head=new Entry(); } class Entry{ int data; int prio;//data优先级 Entry next;...

2018-05-11 12:14:47 347

原创 链式队列

链式队列是单链表的基础上增加的一种做法/** * 链式队列 *单链表的基础上增加的一种做法 *入队使用为尾插法 * */class linkstack{//定义一个链式栈的类 Entry front=null;//指向第一个结点 Entry rear=null;//指向最后一个结点 int usesize=0; public links...

2018-05-11 12:10:18 142

原创 两个栈实现队列

代码实现/**俩个栈实现一个队列**/class twolink{ testlink1 t1=new testlink1(); testlink1 t2=new testlink1(); int top=0;//t1.elem的top int top1=0;//t2.elem的top class testlink1{ int []elem...

2018-05-08 20:59:58 120

原创 数据结构之循环队列

循环队列: 为充分利用向量空间,克服”假溢出”现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。 循环队列结构 判读循环队列为满或者为空的方法 1、当head=rear的时候,队列为空 2、当head=rear+1的时候,队列为满/** * 循环队列,先进先出 * * * */...

2018-05-08 19:55:33 230

原创 中缀表达式转后缀表达式

中缀表达式, 是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法后缀表达式(逆波兰式),指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行.中缀表达式转后缀表达式选择题做法:代码实现:/** * 中缀表达式转换为后缀表达式 * * * 规则: *...

2018-05-08 19:16:52 213

原创 数据结构之链式栈

代码实现/** * 链式栈 * * * */class linkstack{//定义一个链式栈的类 Entry head=null; public linkstack(){ this.head=new Entry(); } class Entry{ int data; Entry next; ...

2018-05-08 18:42:03 242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除