
算法
小小白兔兔
工作邮箱:VueJava@gmail.com
展开
-
动态规划 - 合唱队
计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1<=i<=K)使得T1<T2<…<Ti-1Ti+1>…>TK。你...原创 2020-03-23 15:27:17 · 733 阅读 · 0 评论 -
删除字符串中出现次数最少的字符(考虑特殊字符与不考虑特殊字符解法)
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。注意每个输入文件有多组输入,即多个字符串用回车隔开输出:删除字符串中出现次数最少的字符后的字符串。解法一:考虑特殊字符,万能代码import java.io.FileInputStream;import java.io.FileNotFoundExcepti...原创 2020-03-22 20:12:30 · 366 阅读 · 0 评论 -
汽水瓶 - 计算小明最多能喝多少瓶汽水(简单的递归调用)
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入文件最多包含1...原创 2020-03-22 17:07:18 · 407 阅读 · 0 评论 -
简单密码再次加密 - 注意使用巧妙的方法(使用2个表作对比)
假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道手机上的字母: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–...原创 2020-03-20 17:38:59 · 408 阅读 · 0 评论 -
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出
此题如果直接使用有序的TreeMap就不需要这样折腾:1.map的key值唯一性,故就不在需要set集合来去重2.使用map后利用key的唯一性,把序列号相同的数据直接加在一起,代码会很简洁package com.pagination.plus.workTrain;import com.alibaba.fastjson.JSON;import java.io.FileInputStr...原创 2020-03-11 19:02:42 · 935 阅读 · 0 评论 -
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
package com.pagination.plus.workTrain;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;public class Main0 { public s...原创 2020-03-11 13:57:23 · 3256 阅读 · 0 评论 -
连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
这题的主要有个思想问题:方向思维解决问题更方便package com.pagination.plus.workTrain;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;/** *连续输入...原创 2020-03-11 11:56:15 · 1408 阅读 · 0 评论 -
图文演示 快速排序 - 指针法
分治+指针交换法快排思想:1、给这组数据找一个基准位(一般是数组的第一位)pivot。2、以基准位把数组分为2个子串,左边的的数据都小于等于基准位,右边的数据都大于等于基准位。3、以同样的方式别对2个子串进行此方法排序,一直递归,知道数据排好顺序。递归的结束条件:需要递归的数据只有一个数据。给定原始数列如下,要求从小到大排序:开局和挖坑法相似,我们首先选定基准元素Pivot,并且设...原创 2019-12-15 13:27:03 · 838 阅读 · 0 评论 -
图文演示 快速排序 - 挖坑法
分治+挖坑法何谓挖坑法?我们来看一看详细过程。给定原始数列如下,要求从小到大排序:首先,我们选定基准元素Pivot,并记住这个位置index,这个位置相当于一个“坑”。并且设置两个指针left和right,指向数列的最左和最右两个元素:接下来,从right指针开始,把指针所指向的元素和基准元素做比较。如果比pivot大,则right指针向左移动;如果比pivot小,则把right所指向...原创 2019-12-15 13:11:50 · 349 阅读 · 0 评论 -
1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、212345等. 要求:”4”不能在第三位,”3”与”5”不能相连。
private static String[] mustExistNumber = new String[] { “1”, “2”, “2”, “3”, “4”, “5” };private static boolean isValidNumber(String str) { // 检查是否包含12345这五个数,不包含返回false for (String number : m...原创 2019-10-19 13:11:21 · 294 阅读 · 0 评论 -
算法题 - 分解质因数
public static void main(String[] args) {System.out.println(“输入所求正整数:”);Scanner sc = new Scanner(System.in);Long n = sc.nextLong();long m=n;int flag = 0;String[] str = new String[50];for (long i...原创 2019-10-19 13:08:20 · 302 阅读 · 0 评论