随笔分类 -  算法数据结构

摘要:假设String A = ACTCACG; String B = TGACGAC; 判断A和B是否互为回环。 【思路】 只需满足两个条件即可 1. 两个字符串的长度必须相等 2. 把A自己接在自己后面(A.concat(A))在这个字符串中找B,找到了就输出yes,否则输出no (indexOf(B 阅读全文
posted @ 2017-08-28 10:47 菜鸟更要虚心学习 阅读(275) 评论(0) 推荐(0)
摘要:提示: 【思路一】 可以使用Java内置的二进制转换函数 Integer.toBinaryString(n); 自己实现的话代码如下: 【思路二】 使用栈 阅读全文
posted @ 2017-08-27 16:27 菜鸟更要虚心学习 阅读(941) 评论(0) 推荐(0)
摘要:通常可以直接调用Arrays类中的binarySearch方法,详情请见API文档 注意: 前提条件1:导包java.util.Arrays; 前提条件2:提前排序,可用Arrays.sort(); 【代码】 阅读全文
posted @ 2017-08-27 16:17 菜鸟更要虚心学习 阅读(232) 评论(0) 推荐(0)
摘要:题目: 判定一个数m是否是素数。 定义: 素数,就是质数,我们简单看一看百度给的定义就行,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。 思想: 2 ~ m-1 之间有无整数整除m即可。 简化: 2 ~ 根号m 之间有无整数整除m即可。 【代码】 阅读全文
posted @ 2017-08-27 15:37 菜鸟更要虚心学习 阅读(420) 评论(0) 推荐(0)
摘要:GCD最大公约数 方法:欧几里得算法(辗转相除法), 【思想】递归 【思路】 【代码】 LCM最小公倍数 追求方便公式法求解。 【思路】 【代码】 阅读全文
posted @ 2017-08-27 13:53 菜鸟更要虚心学习 阅读(482) 评论(0) 推荐(0)
摘要:思路:递归 【代码】 阅读全文
posted @ 2017-08-27 13:05 菜鸟更要虚心学习 阅读(1583) 评论(0) 推荐(0)
摘要:2. 题目不难,重点是输入。 阅读全文
posted @ 2017-08-26 17:14 菜鸟更要虚心学习 阅读(288) 评论(0) 推荐(0)
摘要:思路: 只在digit数组的最后一位加一,如果加一产生进位则当前为减10并且修改进位变量使其在下一次循环的时候对下一位产生加一的影响,如果没有进位的产生直接break循环。 最后判断如果最高位有进位,在重新申请数组(比原来数组长一位),把第一位设置为1,其他的把上面的数组复制过来即可。 【正确代码】 阅读全文
posted @ 2017-08-25 15:08 菜鸟更要虚心学习 阅读(275) 评论(0) 推荐(0)
摘要:题目描述 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝 阅读全文
posted @ 2017-08-24 19:16 菜鸟更要虚心学习 阅读(559) 评论(0) 推荐(0)
摘要:思路: 从前向后遍历,用三个变量first second third 保存前三个大的数,初值设为long类型的无穷小(因为开始提交到案遇到负的临界值的情况),如果新来的数大于first则 second first依次后移并且把这歌新值赋值给first 【正确代码】 有时间想想用treeset的容器做 阅读全文
posted @ 2017-08-21 23:04 菜鸟更要虚心学习 阅读(358) 评论(0) 推荐(0)
摘要:思路: 直接向后统计,遇到 0 就重置Max。 阅读全文
posted @ 2017-08-20 10:56 菜鸟更要虚心学习 阅读(348) 评论(0) 推荐(0)
摘要:题目描述:两句话发人深思啊。。。。 Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) w 阅读全文
posted @ 2017-08-19 09:36 菜鸟更要虚心学习 阅读(140) 评论(0) 推荐(0)
摘要:题目要求: 思路一:借助队列,先顺序读入input矩阵,然后按照output要求向output矩阵输入 【正确代码】 时间复杂度:O(m*n) 空间复杂度:O(m*n) 思路二:不借助辅助空间,直接根据output的要求向output矩阵输入 正常向output矩阵中读入数据,如果 cols > c 阅读全文
posted @ 2017-08-18 21:45 菜鸟更要虚心学习 阅读(324) 评论(0) 推荐(0)
摘要:这道题目感觉并不太容易,也并没有想到什么比较好的方法,看来还是积累太少。 思路一:两个指针向后遍历,分别记下造成逆序的最小和最大下标位置 优化的暴力解法(很精妙,面试的时候可以说出来) 思想:两个指针向后遍历,后面的比前面的大时,分别记录这两个元素的下标 lo 和 hi,前面的下标是造成逆序的第一个 阅读全文
posted @ 2017-08-18 19:53 菜鸟更要虚心学习 阅读(268) 评论(0) 推荐(0)
摘要:开始的思路:首先统计需要种几只花,用花的数目统计连续 0 的个数.... ...【囧】突然觉得情况有点复杂啊,有连续的又有分散的怎么能统计全呢? 好吧这里喔偷偷的瞄了一眼参看答案... ...(就一眼就想通了) 思路一: 简单扫描统计,一个一个遍历,遍历到 i 的时候, i 前后的位置也要等于 0; 阅读全文
posted @ 2017-08-17 09:53 菜鸟更要虚心学习 阅读(251) 评论(0) 推荐(0)
摘要:题目不难: 思路一(排序取两端) 先排序,最后三个数相乘即可。(很快就想到了,但是没想全面 [😂] ) 缺陷:没有考虑到有负数的情况,当至少有两个负数时,需要判断 最大数乘两个最小的负数 和 三个最大数相乘的大小,返回大的。 代码如下: 复杂度分析 主要是排序比较浪费 时间复杂度:O(n*logn 阅读全文
posted @ 2017-08-16 23:23 菜鸟更要虚心学习 阅读(171) 评论(0) 推荐(0)
摘要:好久没有刷LeetCode了,准备重拾并坚持下去,每天刷个两小时。今天算是开始的第一天,不过出师不利,在一道很简单的题目上墨迹半天。不过还好,现在踩过的坑,应该都不会白踩,这些可能都是以后程序员路上稳固的基石哦。任何优秀的程序员不都是这样过来的嘛,坚持就好。 注意:大家练习时同样要注意代码的风格,这 阅读全文
posted @ 2017-08-16 21:36 菜鸟更要虚心学习 阅读(487) 评论(0) 推荐(0)
摘要:注:本文记录了代码编写及调试过程,想直接浏览正确答案的请移步文章结尾。 一、字符串的全排列问题 1. 下面是最初的代码(答案有错误-重复输出) 思想: 固定、交换、递归。 举例:输入abc,第一次先固定第一个字符a,使用递归交换a后面的字符(这里递归指的是a后面的字符串也是先固定第一个字符,之后再交 阅读全文
posted @ 2017-08-11 10:32 菜鸟更要虚心学习 阅读(1672) 评论(1) 推荐(0)