
编程语言
kaikaihit
这个作者很懒,什么都没留下…
展开
-
基础算法|排序详解
快速排序快排:快速排序有两个方向,左边的i下标一直往右走(当条件a[i] <= a[center_index]时),其中center_index是中枢元素的数组下标,一般取为数组第0个元素。而右边的j下标一直往左走(当a[j] > a[center_index]时)。如果i和j都走不动了,i <= j, 交换a[i]和a[j],重复上面的过程,直到i>j。交换a[j]和a[center_index],完成一趟快速排序。堆排序堆排序就是把最大堆堆顶的最大数取出,将剩余的堆..原创 2020-10-24 09:20:02 · 295 阅读 · 0 评论 -
Random生成数字,并排序,输出某个特定元素
import java.util.Random;import java.util.Scanner;public class paixu { public static int[] mppx(int[] nums){ int length=nums.length; for(int i=0;i<length;i++){ for(int j=0;j<length-i-1;j++){ if(nums[j+原创 2020-08-31 16:29:29 · 404 阅读 · 0 评论 -
Java正则表达式匹配规则 | 你必须知道的事
Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式操作。import java.util.regex.Matcher;import java.util.regex.Pattern;class RegExpTest { public static void main(String[] args)原创 2020-08-27 16:50:08 · 264 阅读 · 0 评论 -
HJ76:尼科彻斯定理
题目描述验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 接口说明原型:/*功能: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。原型:int GetSequeOddNum(int m,char * pcSequeOddNum);输入参数:int m:整数(取值范围:1~100)返回值:m个连续奇数(格式:“7+9+11”);*/public原创 2020-08-25 17:27:03 · 946 阅读 · 0 评论 -
华为机试HJ100:等差数列
题目描述功能:等差数列 2,5,8,11,14…输入:正整数N >0输出:求等差数列前N项和返回:转换成功返回 0 ,非法输入与异常返回-1本题为多组输入,请使用while(cin>>)等形式读取数据输入描述:输入一个正整数。输出描述:输出一个相加后的整数。示例1输入复制2输出复制7分析:此题非常简单,仅考察数学知识,知道等差数列前n项和即可轻松ac。其中d为公差,a1为首项,通过条件可以计算出。代码如下:import java.uti原创 2020-08-25 15:25:15 · 374 阅读 · 0 评论 -
华为机试HJ48:从单向链表中删除指定值的结果
题目描述输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。详细描述:本题为考察链表的插入和删除知识。链表的值不能重复构造过程,例如1 <- 23 <- 25 <- 14 <- 57 <- 2最后的链表的顺序为 2 7 3 1 5 4删除 结点 2则结果为 7 3 1 5 4输入描述:1 输入链表结点个数2 输入头结点的值3 按照格式插入各个结点4 输入要删除的结点的值输出描述原创 2020-08-25 14:57:49 · 369 阅读 · 0 评论 -
“yyyy-MM-dd”求任意两个日期之间的天数
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;public class Main { public static int defferentDaysByMilisecond(Date date1,Date date2){ return (int)((date2.getTime()-date1.getTime())/(1000*3600*24)); }原创 2020-08-13 19:31:51 · 688 阅读 · 0 评论 -
动态规划解题方法与常见例题
动态规划:DP,动态规划是通过组合子问题的解来解决原问题;动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题;动态规划算法对每个子子问题只求解一次;动态规划通常用来求解最优化问题。解题步骤:判题题意是否为找出一个问题的最优解将原问题分解为子问题从下往上分析问题 ,找出这些问题之间的关联(状态转移方程),如何从一个或多个已知状态求出另一个未知状态的值。(递推型)讨论底层的边界问题,确定一些初始状态(边界状态)的值,并用数组存储初始子问题的解解决问题(通常使用数组进行迭代求出最优解原创 2020-08-11 20:49:14 · 689 阅读 · 0 评论 -
HJ92:在字符串中找到连续最长的数字串
题目描述:样例输出输出123058789,函数返回值9输出54761,函数返回值5接口说明函数原型: unsignedint Continumax(char** pOutputstr, char* intputstr)输入参数: char* intputstr 输入字符串;输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串;如果输入字符串是空,也应该返回空字符串; 返回值: 连续最长的数原创 2020-08-11 09:47:30 · 293 阅读 · 0 评论 -
HJ69:矩阵乘法
题目描述:如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的输入描述:输入包含多组数据,每组数据包含:第一行包含一个正整数x,代表第一个矩阵的行数第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数第三行包含一个正整数z,代表第二个矩阵的列数之后x行,每行y个整数,代表第一个矩阵的值之后y行,每行z个整数,代表第二个矩阵的值输出描述:对于每组输入数据,输出x行,每行z个整数,代表两原创 2020-08-10 20:12:04 · 735 阅读 · 0 评论 -
HJ90:合法IP
题目描述:现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。现在需要你用程序来判断IP是否合法。输入描述:输入一个ip地址输出描述:返回判断的结果YES or NO。思想:输入字符串,根绝"."进行字符串分割,存储到字符数组中,计算匹配的个数,满足条件,即为合法IP。代码:imp原创 2020-08-10 10:47:44 · 402 阅读 · 0 评论 -
HJ96:表示数字
题目描述将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变public static String MarkNum(String pInStr){return null;}注意:输入数据可能有多行输入描述:输入一个字符串输出描述:字符中所有出现的数字前后加上符号“*”,其他字符保持不变。思想:将输入的String字符串转成字符数组(使用toCharArray()),然后新建StringBuffer类,通过append()方法逐个加,当是数字的时候,前后增加“*”,其它原创 2020-08-10 10:34:35 · 612 阅读 · 0 评论 -
HJ99:自守数
题目描述自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数接口说明/*功能: 求出n以内的自守数的个数输入参数:int n返回值:n以内自守数的数量。*/public static int CalcAutomorphicNumbers( int n){/*在这里实现功能*/return 0;}本题有多组输入数据,请使用while(cin>>)原创 2020-08-10 09:59:09 · 662 阅读 · 0 评论 -
(全文4653字)String、StringBuffer和StringBuilder的六大区别
String:适用于少量的字符串操作。StringBuilder:适用于单线程下在字符串缓冲区进行大量操作。StringBuffer:适用于多线程下在字符串缓冲区进行大量操作。区别一:String是final类不能被继承且为字符串常量,而StringBuilder和StringBuffer均为字符串变量。在Java中字符串使用String类进行表示,但是String类表示字符串有一个最大的问题:“字符串常量一旦声明则不可改变,而字符串对象可以改变,但是改变的是其内存地址的指向。”所以String类不原创 2020-08-09 11:40:40 · 3422 阅读 · 2 评论 -
HJ107:求解立方根
题目描述计算一个数字的立方根,不使用库函数详细描述:接口说明原型:public static double getCubeRoot(double input)输入:double 待求解参数返回值:double 输入参数的立方根,保留一位小数思想:math.pow计算立方根,返回小数点较多。再使用DecimalFormat对小数点进行取舍(四舍五入)代码如下:import java.util.*;import java.math.*;import java.text.Decima原创 2020-08-08 14:31:31 · 372 阅读 · 0 评论 -
HJ108:求最小公倍数
题目描述:正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。思想:最小公倍数,需要用到最大公约数,求最大公约数,需要用到递归方法。import java.util.Scanner;public class Main { /** * 求最小公倍数:公式法 * 两个数a,b的最小公倍数是a*b/gcd(a,b) * 由于两个数的乘积等原创 2020-08-08 12:25:06 · 757 阅读 · 0 评论 -
二分查找某个元素的下标——Pyton实现
ast模块,可以将输入的字符串转成list列表代码展示:import astclass Binary(object): def binarySearch(self,nums,target): left,right=0,len(nums)-1 while(left<=right): mide=int((left+right)/2) if(nums[mide]==target):原创 2020-07-13 15:40:48 · 300 阅读 · 0 评论 -
Python实现队列
**队列:**是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。**特点:**先进先出。class Queue(object): def __init__(self): self.items=[] def enqueue(self,item): self.items.append(item)原创 2020-07-12 11:01:38 · 439 阅读 · 1 评论 -
Python实现栈的最基础操作
一、堆、栈和堆栈的区别1.堆栈空间分配1)栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2)堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。2.堆栈缓存方式1)栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放。2)堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。原创 2020-07-12 09:33:58 · 2004 阅读 · 0 评论 -
出现次数最多的数字
问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中...原创 2018-12-13 22:15:41 · 1743 阅读 · 1 评论 -
【Python】python语法详解
【文件首部/编码声明】 #!/usr/bin/env python # -- coding:utf-8 -- # 声明脚本使用 utf-8 编码是为了在脚本中含有中文时也能被正确解释运行【注释】 # here we can put a comment, 在井号后添加注释。【缩进/大小写】 必须使用 4 个空格进行缩进。python是大小写敏感的语言。转载 2017-10-29 12:56:17 · 492 阅读 · 0 评论 -
【Python】python库之(random库)
Python中的random模块用于生成随机数。 首先导入random库: import random #方法需要random.x的形式调用 from random import x #x表示下述的多种库方法,直接调用然后介绍一下random模块中最常用的几个函数。seed(x) #给随机数一个种子值,默认随机种子是系统时钟random(x)原创 2017-10-29 11:57:41 · 1989 阅读 · 0 评论 -
【Python】python库之(math库)
math库中包含了数学公式,我们可以通过用math库求表达式的值 首先导入math库(两种方法):import mathfrom math import x #x表示math库中方法然后通过math库调用库中的函数来打到我们预期的目的π #3.145926……e #2.72…..ceil(x) #对x向上取整floor(x) #对x向下取值原创 2017-10-29 11:51:54 · 20944 阅读 · 3 评论 -
【Python】python之π的计算
用IPO模式分析问题如下: 1.输入:抛点的数量。 2.处理:对于每个抛洒点,计算点到圆心的距 离,通过距离盘点该点在 圆内或圆外,统计在圆内点的数量。 3.输出:π值代码如下from random import randomfrom math import sqrtfrom time import clock #计算程序运行时间DARTS=1200 #抛洒点的个数#D原创 2017-10-29 11:37:19 · 19821 阅读 · 0 评论 -
【Python】蟒蛇程序
python英文名译为蟒蛇,下面我们来绘制这条“蟒蛇”import turtledef drawSnake(rad,angle,len,neckrad): for i in range(len): turtle.circle(rad,angle) turtle.circle(-rad,angle) turtle.circle(rad,angle/2)原创 2017-10-28 17:22:04 · 7956 阅读 · 0 评论 -
Java 程序员必须了解的 7 个性能指标
来源:王韵菲 www.evget.com/article/2015/11/16/22990.html本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们:1.响应时间和吞吐量根据应用程序...转载 2018-12-19 14:12:08 · 182 阅读 · 0 评论