07 2020 档案
摘要:小爱有一个奇怪的计数器。在第一个时刻计数器显示数字3,在接下来的每一个时刻,屏幕上的数字都会减1,直到减到1为止。 接下来,计数器会重置为上一个计数周期初始值的两倍,然后再每一个时刻减1。具体过程如下图所示: 找出规律,并打印出t时刻计数器的值。 输入描述: 输入为时刻t,一个整形数字。0<t<1e
阅读全文
摘要:题目描述 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。 输入描述: 【重要】第一行为数组的长度N(N>=1)接下来N行,每行一个数,代表数组的N个元素 输出描述: 最大和的结果 输入 复制 8 1 -2 3 10 -4 7 2 -5
阅读全文
摘要:说明:服务的索引就是权重数组的下标 import java.util.*; public class Client { public static void main(String[] args) { int[] arr = {3,4,5,6,7}; List<Weight> weights = n
阅读全文
摘要:思路:将他们转成int数组,然后按位相加,空间复杂度有点高,但时间复杂度为Max(O(M,N)) import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanne
阅读全文
摘要:题目描述 在命令行输入如下命令: xcopy /s c:\ d:\, 各个参数如下: 参数1:命令字xcopy 参数2:字符串/s 参数3:字符串c:\ 参数4: 字符串d:\ 请编写一个参数解析程序,实现将命令行各个参数解析出来。 解析规则: 1.参数分隔符为空格 2.对于用“”包含起来的参数,如
阅读全文
摘要:思路: 1,将字符串转成字符数组,然后遍历 2,定义一个list存放结果数据,定义一个临时变量存放单词 3,结束后将结果list进行倒序即可得出答案 private static void splitWords(String str){ List<String> list = new ArrayLi
阅读全文
摘要:思路:利用快慢指针能实现在时间复杂度为O(n)的情况下,找到第k个节点 1,快慢指针共同指向头结点 2,快指针先走k步 3,快慢指针一起走,直到快指针指向null时,慢指针所在位置就是倒数第k个节点 public static void main(String[] args) { ListNode
阅读全文
摘要:https://www.bilibili.com/video/BV1Zt411o7Rn?p=25 参考:这个视频借鉴的归并写法 主要逻辑在对排好后的两个数组进行归并逻辑, 就是有一个指向第一个数组的指针 i 有一个指向第二个数组的指针 j 进行比较并将小的结果放进临时数组,直到一方遍历完成为止,然后
阅读全文
摘要:思路:一开始想着可以通过对原数 * 10 然后对10 取余即可 但取余的代价比较高,后面改成原数 + 0.5 后转成整数,这种方式效率更高 private static void round(double n){ int num = (int) (n + 0.5); System.out.print
阅读全文
摘要:思路:该数和1进行与操作,得到尾数值 判断尾数是否为1,进行记录,直到右移完成 private static void oneCount(int n){ int count= 0; while (n > 0){ int end = n & 1; if(end == 1){ count++; } n
阅读全文
摘要:功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) 最后一个数后面也要有空格 思路:网上参考大佬的思路,自己怎么也想不出来 private static void shape(int n){ StringBuilder result
阅读全文
摘要:题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 思路:靠总结规律,得出每次需要增加多少即可 private static void shape(int n){ int beg = 1;
阅读全文
摘要:思路:这题还是比较简单的,直接遍历判断即可 public static void main(String[] args) { int strCount = 0; int blankCount = 0; int numCount = 0; int otherCount = 0; Scanner sca
阅读全文
摘要:输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理) 例:输入20,输出3(7,14,17) 思路:从7开始遍历数字,当这个数对7取余为0或此数包含7字符,则加入结果集 时间复杂度为O(n) p
阅读全文
摘要:思路:利用ASCII 的编码, 1,一次遍历得到所有字符的下标对应出现的次数 2,遍历结果,找出第一次只出现一次的字符 3,此算法的时间复杂度为O(n) package com.jpush.excel; import java.util.Scanner; public class Client {
阅读全文
摘要:输入两个字符串数字,输出相加后的结果,string型 思路: 定义个两个数字的数组,然后将每一个数据加入 两个数组进行相加,将结果保存到result数组中即可 private static void AddLongInteger(String one,String two) { int oneLen
阅读全文
摘要:校验比较简单,只要在0-255之间就算合法 private static boolean ipValid(String ip) { String[] split = ip.split("\\."); int len = split.length; if(len != 4){ return false
阅读全文
摘要:将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变 示例1: Jkdi234klowe90a3 Jkdi*234*klowe*90*a*3* import java.util.Scanner; public class Main { public static void main(Str
阅读全文
摘要:自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数 public static void main(String[] args) { for (int i = 0; i < 100; i
阅读全文
摘要:题目描述 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝
阅读全文
摘要:/** * * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 * 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 * 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。 * *
阅读全文
摘要:private static void chickenCount() { for (int i = 0; i <= 100/5; i++) { for (int j = 0; j <= (100 - 5 * i)/3; j++) { int c = (100 - 5 * i - 3 * j) * 3
阅读全文
摘要:还是比较简单的,只是润年的计算规则要搞清楚 private static int daysOfDate(int year,int month ,int day) { int[] monthDays = {31,28,31,30,31,30,31,31,30,31,30}; if(month == 1
阅读全文
摘要:private static void getCommonStrLength(String a , String b) { int aLen = a.length(); int bLen = b.length(); int[][] dp = new int[aLen+1][bLen+1]; for
阅读全文
摘要:尼科彻斯定理 public static void main(String[] args) { long m = 6; long a = m * m - m + 1; System.out.println(a); for (int i = 1; i < m; i++) { System.out.pr
阅读全文
摘要:功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 无 返回: 对应的二进制数字中1的最大连续数 private static void getIntBinary(int n){ String str =
阅读全文
摘要:密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母 三、数字: 0 分: 没有数字 1
阅读全文
摘要:请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。 private static void calc(int row, int col) { i
阅读全文
摘要:等差数列求和公式:(a1 + an) * n / 2 an = a1 + (n - 1) * d; private static void calc(int n) { if(n <= 0){ System.out.println("非法输入"); return; } int d = 3; int a
阅读全文
摘要:按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = 0;
阅读全文
摘要:空间复杂度为O(3),时间复杂度为O(n);平均值保留一位小数,如果没有正数则平均值输出0.0 /** * 计负均正,空间复杂度为O(3),时间复杂度为O(n) **/private static void calc(int[] arr) { int negCount = 0; int posCou
阅读全文
摘要:/** * 将一个字符串进行反转 **/private static String reverse(String str) { char[] chars = new char[str.length()]; int len = str.length() - 1; for (int i = 0; i <
阅读全文
摘要:/** * 求一个数的立方根,利用二分法,时间复杂度在logn **/ private static double getCubeRoot(double input){ double min = 0; double max = input; double mid = 0; while ((max -
阅读全文
摘要:private static int minCommonMultiple(int m,int n){ return n * m / maxCommonDivisor(m,n); } /** * 求最大公约数 **/ private static int maxCommonDivisor(int m,
阅读全文

浙公网安备 33010602011771号