![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题解
春风难寻意中人
这个作者很懒,什么都没留下…
展开
-
【剑指 Offer】(四种解法)数组中重复的数字
剑指 Offer 03. 数组中重复的数字题目描述在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000...原创 2020-09-03 10:37:55 · 261 阅读 · 0 评论 -
百度笔试算法题——定范围的两个数求最小公约数与最大公倍数最大差
题目描述度度能请你找出两个数a,b,满足1≤a,b≤n且lem(a,b) - gcd(a,b)尽量大。输出最大的lcm(a, b) - gcd(a, b).其中lcm(a,b))表示(和b的的最小公倍数,gcd(a,b)!表示和b的最大公约数。输入描述: 一行一个数字n(2≤n≤109)。输出描述:一行一个数字表示最大的lem(a,b) - gcd(a,b)示例:输入 5 输出 ...原创 2020-03-29 23:38:51 · 359 阅读 · 0 评论 -
随机数组求最大值、最小值、平均数、总和(需要注意的点)
题目描述:定义一个int型的一维数组,包含10个元素,分别赋一些随机数,然后求出所有元素的最大值,最小值,和值,平均 值,并输出出来。要求:所有随机数都是两位数。[10,99]解析:在本题中,最为需要注意的点有:1)、如何使用Java自带的产生随机数的函数,产生一定范围的数2)、在比较最大值与最小值的时候,我们可以以开头的元素为基准,防止出现错误下面是产生特定随机数的方法总结:...原创 2020-03-20 20:20:42 · 3797 阅读 · 0 评论 -
整数反转(三种解法)——leetcode
面试题58 - II. 左旋转字符串——leetcode给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321 示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出: 21 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反...原创 2020-03-15 00:37:53 · 4618 阅读 · 0 评论 -
反转字符串(三种解法)——leetcode
题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 示例 2:输...原创 2020-03-15 00:20:32 · 7073 阅读 · 1 评论 -
存在重复(三种解法)——leetcode
题目描述:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1: 输入: [1,2,3,1] 输出: true示例 2: 输入: [1,2,3,4] 输出: false示例 3: 输入: [1,1,1,3,3,4,3,2,4,2] 输出: true解题思路:1、看到这道...原创 2020-03-14 23:47:43 · 445 阅读 · 0 评论 -
面试题58 - II. 左旋转字符串——leetcode
题目描述:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrl...原创 2020-03-13 15:17:25 · 192 阅读 · 0 评论 -
如何计算数组前N项和——Java
题目:给定一个数组请你求出其前N项的和是多少方法一 —— 使用递归调用:使用递归调用来计算本题会提升时间复杂度与空间复杂度(有一个压栈与出栈的操作)public class Main{ public static void main(String[] args) { int[] a = {1,2,5,4,8,66,7,11,12}; System.out.println(...原创 2019-11-29 15:23:38 · 3260 阅读 · 0 评论 -
Java——斐波那契数列的第n项与前n项和
下面是从网上找的一张关于斐波那契的图片,该图片解释了什么是斐波那契 序列注意:第0项值为0 第1项值为1 第2项值为1 之后每一项都等于其前两项的和求斐波那契额的第n项的值方法一: static int fib(int n) { //当n为0或1时,结果为其本身 return (2>n) ? n: fib(n-1)+fib(n-2); }方法二:publi...原创 2019-11-28 21:04:54 · 4545 阅读 · 1 评论 -
加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。来源:力扣(...原创 2019-11-22 20:01:32 · 166 阅读 · 0 评论 -
两数之和(两种解法)——leetcode
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]来源:力扣(Leet...原创 2019-11-21 21:15:01 · 160 阅读 · 0 评论 -
回文数字
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121 输出: true示例 2:输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例3:输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 进阶:你能不将...原创 2019-11-21 20:52:06 · 506 阅读 · 0 评论 -
求1000个1-100的随机数中每个数的个数
随机生成1000个1—100以内的整数,求每个整数出现的次数。解题思路:1.不排序的方法:直接进行双重循环,以0-99作为下标加一之后变为1-100.然后数组的值存每个数出现的次数(时间复杂度太大)2.先进性排序然后求取数据出现的次数public class Random { public static void main(String[] args) { int[] ar...原创 2019-11-21 20:22:55 · 1766 阅读 · 0 评论 -
java——末尾0的个数
【题目描述】输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n =10; n! = 3628800,所以答案为2输入描述:输入一行,n(1<=n<=1000)输出描述:输出一个整数,即题目所求输入例子:10输出:2题目分析:由于0的来源是2 和5 ,但是在所有的数中以2为因数的数较多,所有在这里我们只需要考虑因子5的个数就行。错误分析:不能以10为...原创 2019-11-20 17:35:09 · 1460 阅读 · 0 评论 -
只出现一次的数字——力扣
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1示例 2:输入: [4,1,2,1,2] 输出: 4知识点补充:异或运算符(^)异或运算符(^) 参加运算的两个数据,按二进制位进行“异或”运算。 运算...原创 2019-11-09 21:11:58 · 147 阅读 · 0 评论 -
用Java实现两个矩阵的加减乘——ppt课件
花费了一个小时终于把星期一讲课的ppt制作出来了,有需要的可以直接拿走不谢!ppt链接:https://kdocs.cn/l/ssue6PyAD?f=111代码链接:https://kdocs.cn/l/s0Zf8FyxV?f=111...原创 2019-11-03 16:45:23 · 185 阅读 · 0 评论 -
汽水瓶兑换问题——牛客网
题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:...原创 2019-10-22 17:05:28 · 963 阅读 · 0 评论 -
【编程题】字符串排序
原创 2018-11-14 22:13:31 · 571 阅读 · 0 评论