![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题集锦
峰回路转
让时间说真话
展开
-
编程题:在两个长度相等的排序数组中找到上中位数(递归练习)
文章目录问题描述:解题思路:思路1:暴力解法思路2:思路1的改装版思路3:递归版思路4:思路3的改装,迭代版解题代码:思路1代码思路2代码思路3代码思路4代码链接:传送门来源:牛客网问题描述:解题思路:思路1:暴力解法观察题我们可以得到:就是有两个有序的数组,然后把他们合并起来时求出这一串数据的中位数。既然是求新组合数据的中位数,那么我们可以将这两个数组合并为一个数组,然后重新排序...原创 2020-04-17 15:13:28 · 923 阅读 · 0 评论 -
常见算法之二分查找算法
二分查找算法概念利用每次将数据平分的思想将数据分为两部分,然后不断进行查找。这样的算法时间复杂度很低,当有X个数据的时候,最多的查找次数是n=log2X。但是 这个算法的缺点在于只能用于有序的数组序列,如果数组无序,我们需要先将它排序才行。理解为了更好的理解我找了一道很经典的二分查找算法题,供大家理解: 传送门思路1.如题上所说用二分查找算法说明数组已经是一个有序...原创 2020-04-09 23:27:26 · 206 阅读 · 0 评论 -
编程题:最长回文子串
文章目录问题描述:解题思路:解题代码:链接:传送门来源:牛客网问题描述:解题思路:其实这道题的解决思路和这个题的思路是一样的:传送门要解决这个问题,我们大致将它分为2个步骤:(1)得到所有可能出现的字符串(2)对1得到的字符串进行是否是回文字符串的判断(3)如果是回文字符串的话,记录他们的长度并找出他们中的最大值解题代码:import java.util.*;pub...原创 2020-03-26 17:27:40 · 186 阅读 · 0 评论 -
编程题:统计回文
文章目录问题描述:解题思路:解题代码:链接:传送门来源:牛客网问题描述:解题思路:要解决这个问题,我们大致将它分为2个步骤:(1)得到所有可能出现的字符串(2)对1得到的字符串进行是否是回文字符串的判断解题代码:import java.util.Scanner;public class Statistical_Palindrome2 { public stati...原创 2020-03-26 17:19:29 · 187 阅读 · 0 评论 -
编程题:寻找第K大
文章目录问题描述:解题思路:解题代码:链接:传送门来源:牛客网问题描述:解题思路:这个题主要考察的快速排序(这里我们做的事从小到大的排序),何为快速排序:(1)每次找一个基准值(一般的我们将小数组的第一个数作为基准值)将整个数组分为2部分,前半部分比它大,后半部分比它小(2)不断进行递归1步骤,直到无法小数组无法进行分割(小数组里只有一个元素)(3)最后将整个数组排列好解题...原创 2020-03-26 17:07:01 · 570 阅读 · 0 评论 -
编程题:字母统计
文章目录问题描述:解题思路:解题代码:问题描述:输入一个字符串(只包含大写字母),统计每个字母出现的次数,如果里边不包含某个字母,输出的时候应该提示用户它出现的次数为0。解题思路:我们用一个HashMap将每个字母与他们的出现次数联系起来。每个字母作为key,他们出现的次数作为vaule。初始化map,这里比较麻烦的地方就是这里得输入一遍A-Z的字母,将他们的value先都初始化为0。...原创 2020-03-14 21:12:38 · 549 阅读 · 0 评论 -
编程题:进制转换
文章目录问题描述:解题思路:解题代码:链接:进制转换来源:牛客网问题描述:解题思路:首先我们应该弄清楚题上输入的0xA是什么意思:0x就代表后边的数字是个16进制的数字。其次我们应该知道一些有关16进制的知识:十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a-f)表示,其中:A-F表示10~15,这些称作十六进制数字。清楚这些...原创 2020-03-14 20:59:27 · 357 阅读 · 0 评论 -
编程题:统计数字出现次数
文章目录问题描述:解题思路:解题代码:问题描述:问题:输入任意数量的数字,统计每个数字出现的次数,并从大到小排序解题思路:首先我们知道数字只有0-9,此题我们应该会想到如何让每个数字能与次数联系起来,这个时候我们就应该想到用HashMap来联系二者。. 我们把0-9的数字分别当做key,他们出现的次数当做value,每输入一个数就将它放进map里,如果存在着这个key,则将它的value...原创 2020-03-14 20:43:36 · 1930 阅读 · 0 评论 -
编程题:数字和为sum的方法数
文章目录问题描述:解题思路:初级解题思路:递归思路进阶解题思路:动态规划思路解题代码:初级解题代码:进阶解题代码:链接:数字和为sum的方法数来源:牛客网问题描述:解题思路:初级解题思路:递归思路同 神奇的口袋 的思路是一样的,把里边的数字换成我们输入的sum就行了但是这种做法行倒是行,但是由于递归的做法做这个题的时候回占用大量的栈空间,而且会超时,所以我们得想其他的算法进阶解...原创 2020-03-07 22:54:19 · 369 阅读 · 0 评论 -
编程题:发邮件(错排算法)
文章目录问题描述:解题思路:解题代码:链接:发邮件来源:牛客网问题描述:解题思路:分析题意:就是让我们找什么情况下所有人都会收到错误的邮件。假设a给b和c发邮件,有两种选择: 第一种:a把给b的邮件给c,然后把给c的邮件给b(就是把他两的邮件互换),剩下N-2个人也都这么处理(就是N-2个子问题),那么就有f(n-2)种情况; 第二种:a没有把给b的邮件给c,反而是给了其他的...原创 2020-03-07 22:08:31 · 295 阅读 · 0 评论 -
编程题:年会抽奖(错排算法)
文章目录问题描述:解题思路:解题代码:链接:来源:牛客网问题描述:解题思路:解题代码:原创 2020-03-07 21:50:01 · 702 阅读 · 6 评论 -
编程题:神奇的口袋
文章目录问题描述:解题思路:解题代码:链接:神奇的口袋来源:牛客网问题描述:解题思路:分析题意:往书包里装东西从最后一个开始装:此为第一种情况: 可能的情况是最后一个就是40,剩余空间为0; 或者是最后一个一直往前直到装到某一个的时候装不下了; 再者就是从第二条开始装着装着发现装完了。然后后续的情况就是从倒数第二个开始装一直循环第一种的装法,直到最后一个分析可...原创 2020-03-06 21:59:35 · 475 阅读 · 0 评论 -
编程题:密码验证合格程序
文章目录问题描述:解题思路:解题代码:扩充知识:1.String.matches()用法:2.有关代码里用到的正则表达式:链接:密码验证合格程序来源:牛客网问题描述:解题思路:观察题意密码要求:1.长度超过8位(最好解决)2.包括大小写字母.数字.其它符号,以上四种至少三种(不好弄)3.不能有相同长度超2的子串重复,说明:长度超过2的子串(不好弄)经过看大佬的博客,发现了St...原创 2020-03-06 12:29:29 · 729 阅读 · 0 评论 -
编程题:守形数
文章目录问题描述:解题思路:解题代码:链接:守形数来源:牛客网问题描述:解题思路: 观察题意:守形数就是加入现在又一个数n1,它的平方是n2,n2的除第一位后边的数字n3恰好等于n1 所以我们解题的思路为: 1.求出n2 2.先将n2转换成字符串,用字符串的截取功能将n3截取出来,再次转换为数字 3.n3与n1进行对比即可 但是这里边有坑: 题上说的...原创 2020-03-06 11:36:14 · 535 阅读 · 0 评论 -
编程题:找X
文章目录问题描述:解题思路:解题代码:链接:找X来源:牛客网问题描述:解题思路:1.输入一个值n2.建立一个HashMap,大小为n; 它的key为输入的值,vaule是从0开始每次递增1的值 为什么这么设置呢(后边在验证是否含有X的时候,输出的value即为它对应的下标)3.if(map.containsKey(x)){ 输出Key }else { ...原创 2020-03-04 16:46:03 · 173 阅读 · 0 评论 -
编程题:数字之和
文章目录问题描述:解题思路:解题代码:链接:数字之和来源:牛客网问题描述:解题思路:观察题要实现的核心功能是:将一个十进制的数字的每一位进行相加 这里我们采用的是先把数字转换为String然后提取出每一位在转换为数字计算的方法解题代码:import java.util.Scanner;public class Main { public static void m...原创 2020-03-04 16:29:36 · 509 阅读 · 0 评论 -
编程题:记票统计
链接:记票统计来源:牛客网文章目录问题描述:解题思路:解题代码:课后思考:问题描述:解题思路:1.这个题其实就是统计一些候选人的票选情况,最大的难点可能在于如何将候选人与票选情况有机的结合起来。 这里我们用LinkedHashMap将他两结合起来(具体为什么没用Hash文章后边会讲到)2.步骤以及注意点在代码中的注释中 解题代码:import java.util.*;p...原创 2020-03-03 18:09:52 · 355 阅读 · 0 评论 -
编程题集锦博客模板
链接:来源:牛客网问题描述:解题思路:解题代码:原创 2020-03-04 16:08:20 · 146 阅读 · 0 评论 -
编程题:学分绩点
链接:学分绩点来源:牛客网问题描述:解题思路:此题的解法不难,按照题上的说法顺着思路往下写即可1、写一个函数,可以根据成绩返回绩点。(对应代码GPA函数)2、用数组存储输入的学分和成绩,遍历数组求得答案总评绩点 = 所有学科绩点之和 / 所有课程学分之和一门课程的学分绩点 = 该课绩点 * 该课学分解题代码:import java.util.Scanner;publi...原创 2020-03-03 13:16:00 · 1156 阅读 · 0 评论 -
编程题:神奇的口袋
问题描述:链接:神奇的口袋来源:牛客网有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。解题思路:1.解...原创 2020-01-19 14:56:44 · 162 阅读 · 0 评论 -
编程题:汽水瓶问题
问题描述:链接:汽水瓶问题来源:牛客网有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,...原创 2020-01-19 12:08:56 · 342 阅读 · 0 评论