![](https://img-blog.csdnimg.cn/c2c3ea5028864207ab8e7f6f81fee074.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Xuni的算法历程
leetcode刷题总结
Xuniiiii
这个作者很懒,什么都没留下…
展开
-
蓝桥杯-数字游戏
问题描述给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。 例如: 3 1 2 4 4 3 6 7 9 16现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。输入格式第1行为两个正整数n,sum样例输入4 16样例输出3 1 2 4数据规模和约定0<n<=10思路通过原创 2022-02-13 01:53:44 · 216 阅读 · 0 评论 -
蓝桥杯JavaB组真题(二)
第五题:斐波那契数列最大公约数题目描述分析题目由于F2020与F520都是很大的数,需要用到BigInteger类来存储求斐波那契数列时使用滚动数组的方法,以免内存溢出求最大公约数时,由于是大数,使用普通循环方法不好实现,这里使用了递归的方法代码实现import java.math.BigInteger;public class Test { public static void main(String[] args) { BigInteger F520 =原创 2021-12-19 16:14:09 · 287 阅读 · 0 评论 -
[Q260]只出现一次的数字Ⅲ
[Q260]只出现一次的数字Ⅲ给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: nums = [1,2,1,3,2,5]输出: [3,5]示例 2:输入: nums = [-1,0]输出: [-1,0]思路第一步如Leetcode[136]题,将数组所有数异或,得出的结果是两个答案异或的结果(re原创 2021-11-28 23:56:17 · 397 阅读 · 0 评论 -
面试题 08.05. 递归乘法
面试题 08.05. 递归乘法递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: A = 1, B = 10输出: 10示例 2:输入: A = 3, B = 4输出: 12思路A * B = (A * 2) * (B / 2)此时若B的二进制位的最后一位数为1,整型除法会丢掉余数1即A * B = A * 1 + (A *原创 2021-10-31 17:15:48 · 219 阅读 · 0 评论 -
[Q136]只出现一次的数字
[Q136]只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入:[2,2,1]输出: 1示例 2:输入:[4,1,2,1,2]输出: 4思路a xor a = 0a xor b xor a = b题目中说明无关数字均出现2次,即将数组遍历并异或后结果为目标数字Java代码实现class Solution {原创 2021-10-24 14:14:04 · 108 阅读 · 0 评论 -
[Q137]只出现一次的数字 Ⅱ
[Q137]只出现一次的数字 Ⅱ给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99思路数组中元素为int类型,有32位二进制位。对于数组中[非答案]的元素,每一个元素都出现了 3 次,对应着第 i 个二进制位的 3 个 0 或 3 个 1,无论是哪一种情况,它们的和都是 3 的原创 2021-10-17 14:16:26 · 244 阅读 · 0 评论 -
简单的括号匹配
简单的括号匹配[Q20]给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。Java代码实现public boolean isValid(String s) { if(s == null || s.length() == 0){ return true; // null和0返回true }else if(s.length原创 2021-10-07 15:58:50 · 182 阅读 · 0 评论