![](https://img-blog.csdnimg.cn/20190408114727455.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA算法题总结
文章平均质量分 76
平时做算法题的一些总结记录,每道题的分析和多种解法,总结做算法题的思路
幽蓝丶流月
种下一棵树的最好时间是十年前,其次是现在。愿我们在满是荆棘的路上,披荆斩棘,砥砺前行~
展开
-
【精选】JAVA算法题(二十四)
一、子字符串出现的位置题目:/*** 给出 字符串 text 和 字符串列表 words, 返回所有的索引对 [i, j] 使得在索引对范围内的子字符串* text[i]...text[j](包括 i 和 j)属于字符串列表 words。** 示例 1:* 输入: text = "thestoryofleetcodeandme", words = ["story","f...原创 2019-06-02 17:44:31 · 599 阅读 · 0 评论 -
【精选】JAVA算法题(二十三)
一、完全平方数题目:/** *给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 * 说明:不要使用任何内置的库函数,如 sqrt。 * * 示例 1: * 输入:16 * 输出:True * * 示例 2: * 输入:14 * 输出:False */不使用库函数来判断一个数是不是一个完全平方数-...原创 2019-06-02 16:47:08 · 610 阅读 · 0 评论 -
【精选】JAVA算法题(二十二)
一、两数之和题目:/** * 不使用运算符 + 和 - ,计算两整数 a 、b 之和。 * * 示例 1: * 输入: a = 1, b = 2 * 输出: 3 * * 示例 2: * 输入: a = -2, b = 3 * 输出: 1 */这道题的本意其实就是在考你的位运算,如何利用位运算来进行数的加减可以分为两...原创 2019-05-30 20:45:03 · 398 阅读 · 0 评论 -
【精选】JAVA算法题(二十一)
一、丑数题目:/** * 编写一个程序判断给定的数是否为丑数。 * 丑数就是只包含质因数 2, 3, 5 的正整数。 * * 示例 1: * 输入: 6 * 输出: true * 解释: 6 = 2 × 3 * * 示例 2: * 输入: 8 * 输出: true * 解释: 8 = 2 × 2 × 2 * * 示例 3: * 输入: 14 * 输出: ...原创 2019-05-23 11:31:03 · 285 阅读 · 0 评论 -
【精选】JAVA算法题(二十)
一、异位词题目:/** * 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 * * 示例 1: * 输入: s = "anagram", t = "nagaram" * 输出: true * * 示例 2: * 输入: s = "rat", t = "car" * 输出: false * * 说明: * 你可以假设字符串只包...原创 2019-05-22 21:11:51 · 335 阅读 · 0 评论 -
【精选】JAVA算法题(十九)
一、重复的数题目:/** * 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j, * 使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 * * 示例 1: * 输入: nums = [1,2,3,1], k = 3 * 输出: true * * 示例 2: * 输入: nums = [1,0,1,1]...原创 2019-05-22 20:40:49 · 1086 阅读 · 0 评论 -
【精选】JAVA算法题(十八)
一、移除链表中指定的节点题目:/** * 删除链表中等于给定值 val 的所有节点。 * * 示例: * 输入: 1->2->6->3->4->5->6, val = 6 * 输出: 1->2->3->4->5 */题的描述很简单,做起来并不容易,有一些小坑,要注意的就是头尾的节点的处理和连续相等的情况处理,...原创 2019-05-22 15:14:20 · 559 阅读 · 0 评论 -
【精选】JAVA算法题(十七)
一、镜面反射题目:/** * 有一个特殊的正方形房间,每面墙上都有一面镜子。除西南角以外,每个角落都放有一个接受器,编号为 0, 1,以及 2。 * 正方形房间的墙壁长度为 p,一束激光从西南角射出,首先会与东墙相遇,入射点到接收器 0 的距离为 q 。 * 返回光线最先遇到的接收器的编号(保证光线最终会遇到一个接收器)。 */ 示例:输入: p = 2, q...原创 2019-05-09 20:54:57 · 390 阅读 · 0 评论 -
【精选】JAVA算法题(十六)
1.脏矩形合并题目: 在2D渲染系统中,局部渲染是常见提升渲染性能的方法。如果界面中有元素发生了改变,我们可以将这个元素所占矩形区域标记为脏矩形,那么在接下来的渲染中,我们仅对每个脏矩形所占矩形区域执行一次局部渲染即可,无需渲染全屏。 但系统提供的局部渲染API有如下限制: 1. 单次局部渲染区域必需是矩形,不能是多边形,圆形或者其他不规则形状。 2. 单次局部渲染时间开销除了和...原创 2019-04-20 22:13:46 · 482 阅读 · 3 评论 -
JAVA入门算法题(十五)
一、满二叉搜索树/** * 给定一个二叉树的层序遍历判断是不是一颗满二叉搜索树 */大致分为这么几步:1.处理输入2.根据满二叉树的节点数量进行排除3.构建树4.递归判断 public static Node root; public static void isManTree(){ Scanner sc = new Scann...原创 2019-04-06 13:13:22 · 289 阅读 · 0 评论 -
JAVA入门算法题(十四)
一、最小的淘气值题目:/** * 老师要给学生安排座位,经统计教室有N个双人桌,M名学生,每个学生有一个淘气值, * 要合理安排座位,使得班内同桌之和的淘气值最大值尽可能的小,输出最小值。 */这是一道360Android春招笔试题要考虑这样的几种情况:1.座位数>=学生数,那么就每个人做一个桌子,最大的淘气值就是最淘气的那个学生2.座位数刚好坐满,那么...原创 2019-03-31 16:24:19 · 553 阅读 · 0 评论 -
JAVA入门算法题(十三)
一、出现一次的数题目:/** * 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 * 说明: * 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? * 示例 1: * 输入: [2,2,1] * 输出: 1 * 示例 2: * 输入: [4,1,2,1,2] * 输出: 4 */看完题便...原创 2019-03-31 15:38:20 · 263 阅读 · 0 评论 -
JAVA入门算法题(十二)
一、最大利润题目:/** *给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 * 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 * 注意你不能在买入股票前卖出股票。 * 示例 1: * 输入: [7,1,5,3,6,4] * 输出: 5 * 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(...原创 2019-03-31 14:18:06 · 339 阅读 · 0 评论 -
JAVA入门算法题(十一)
一、倒置层序遍历题目:/** * 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) * <p> * 例如: * 给定二叉树 [3,9,20,null,null,15,7], * 3 * / \ * 9 20 * / \ * 15 7 * 返回其自底向上的层次遍历为: ...原创 2019-03-31 11:31:31 · 505 阅读 · 0 评论 -
JAVA入门算法题(十)
稳扎稳打,可攻可守。没抓在手里的成功都是不算的。1.删除重复的数字/** * 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 * <p> * 示例 1: * 输入: 1->1->2 * 输出: 1->2 * <p> * 示例 2: * 输入: 1-...原创 2018-12-22 21:47:42 · 527 阅读 · 0 评论 -
JAVA入门算法题(九)
交会修理你的朋友。这种朋友正是你人生的导师。1.加一/** *给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 * 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 * 你可以假设除了整数 0 之外,这个整数不会以零开头。 * * 示例 1: * 输入: [1,2,3] * 输出: [...原创 2018-12-22 20:26:51 · 558 阅读 · 0 评论 -
JAVA入门算法题(七)
有志者自有千计万计,无志者只感千难万难。1.链表合并 /** * 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 * 输入:1->2->4, 1->3->4 * 输出:1->1->2->3->4->4 */给出的链表结构:/** ...原创 2018-12-21 22:23:15 · 432 阅读 · 0 评论 -
JAVA入门算法题(六)
不只为了糊口,还要有抱负。你要想:在这个行业中,我要成为什幺样的人。一、最大的时间题目:给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。示例:输入:[1...原创 2018-12-15 19:04:41 · 650 阅读 · 1 评论 -
【精选】JAVA入门算法题(五)
把敬业变成习惯。短期来看是为了雇主,长期来看是为了自己。1.题目:重复的字符串/** * 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 * * 输入: "abab" * 输出: True * 解释: 可由子字符串 "ab" 重复两次构成。 * * 输入: "aba" * 输出: False...原创 2018-12-02 21:56:30 · 755 阅读 · 0 评论 -
【精选】JAVA入门算法题(四)
把敬业变成习惯。短期来看是为了雇主,长期来看是为了自己。1.题目:全排列问题这种问题在算法题中应用很多,主要思路是使用递归来求,求n个数的全排列就是把第一个数固定后求n-1个数的全排列,不断递归到只有一个数private static void Method1() { disorder(array,0,array.length); } priva...原创 2018-12-02 19:09:37 · 776 阅读 · 0 评论 -
JAVA入门算法题(三)
把敬业变成习惯。短期来看是为了雇主,长期来看是为了自己。1.题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。估计统计字符是所有人都做过的题这里给出两种思路,第一种思路是比较ASCII码,第二种是使用正则匹配private static void Method1() { int letter=0; int space=0;...原创 2018-12-15 19:03:10 · 544 阅读 · 0 评论 -
【精选】JAVA入门算法题(二)
时时要有危机意识。别以为你命好运也好。1.题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。题非常简单,只要用for循环,取出数的个位、十位、百位差不多就完成了 for (int i=100;i<1000;i++){ int...原创 2018-12-02 14:53:32 · 934 阅读 · 2 评论 -
【精选】JAVA入门算法题(一)
跌倒了,一定要爬起来。不爬起来,别人会看不起你,你也会失去机会。1.题目:打印出杨辉三角形(要求打印出10行)什么是杨辉三角呢?下面这个就是杨辉三角最大的特性就是每个数字都是该数字肩上的两个数字之和,这道题经常在学习二维数组和循环控制中出现我们可以假设吧这些数存在一个二维数组中,那么ints[i][j]=ints[i-1][j-1]+ints[i-1][j];我们可以很容易...原创 2018-12-02 13:27:47 · 4185 阅读 · 8 评论 -
吸血鬼数字(多种解法)
最近在读《Thinking in JAVA》,在里面发现一个很有意思的题,该题在75页,第四章第十题原题:吸血鬼数字是指位数为偶数的数字,可以由一堆数字想乘而得到。而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列的数字都是“吸血鬼”数字:1260=21*601827=21*872187=27*81写出...原创 2018-10-12 11:02:44 · 6780 阅读 · 5 评论 -
JAVA 大数的乘法运算和取余运算
莫妒他长,妒长,则己终是短;莫护己短,护短,则己终不长。1.乘法运算这是一道入门的算法题,目的就是求两个超过基础数据类型所表示的两个数的乘积。刚开始看到这道题我想的便是分解 计算 合并 ,但是合并后的数如何存储返回又是一个问题,苦思冥想下想到了用数组,并不断把算法优化。首先实现这种大数运算,基础数据类型是无法存储也无法运算的,但是我们可以手写在纸上算 /** ...原创 2018-12-18 20:56:16 · 2017 阅读 · 0 评论 -
JAVA排序算法总结
不要独享荣耀。独享荣耀,有天就会独吞苦果。1.冒泡排序说到排序算法最先想到的就是冒泡排序了,它是最简单也是最慢的排序方法,双层for循环对每两项数值进行比较交换/** * 冒泡排序 * @param array */ public static void maoPao(int []array){ int temp; ...原创 2018-12-23 17:15:54 · 516 阅读 · 0 评论