
算法刷题
算法刷题
Bessie_Lee_gogogo
上班当牛马了,后面同步更新到微信公主号了(热爱学习的曦曦同学,Bessie_Study)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【蓝桥杯】第十三届蓝桥杯大赛软件赛决赛-Python大学B组【纯暴力解法记录】
文章小记:本文是记录蓝桥杯真题暴力解法的帖子,其中有部分题目会因为时间超时而无法通过。原创 2022-10-03 14:26:06 · 3109 阅读 · 0 评论 -
【python解法】 第十二届蓝桥杯python A组试题A:卡片
文章目录1、题目:2、自己的解法:2.1、代码:2.2、解法解释:3、其他解法3.1、解法1:3.2、解法2:4、参考博客:1、题目:2、自己的解法:2.1、代码:n = 2021list = [0,0,0,0,0,0,0,0,0,0]count = 0judge = 0while judge == 0: count += 1 for i in range(len(str(count))): ss = str(count) for j in原创 2022-02-08 18:00:31 · 2148 阅读 · 0 评论 -
【蓝桥杯基础练习】第三天: ① 杨辉三角形 ② 特殊数字 ③ 回文数 ④ 特殊的回文数 ⑤ 数列排序
BASIC 6-10BASIC-6 杨辉三角形BASIC-7 特殊数字憨憨解法高逼格解法BASIC-8 回文数憨憨解法高逼格解法BASIC-9 特殊的回文数高逼格解法憨憨解法BASIC-13 数列排序憨憨解法高逼格解法结果BASIC-6 杨辉三角形'''问题描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行: 1 1 1 1 2 11 3 3 1给出n,输出原创 2022-01-22 22:57:54 · 560 阅读 · 0 评论 -
【蓝桥杯基础练习】第二天: ① 闰年判断 ② 01字串 ③ 字母图像 ④ 数列特征 ⑤ 查找整数
【蓝桥杯基础练习】第二天: ① 闰年判断 ② 01字串 ③ 字母图像 ④ 数列特征 ⑤ 查找整数原创 2022-01-21 23:17:10 · 1246 阅读 · 0 评论 -
【蓝桥杯基础练习】第一天:①A+B问题 ②序列求和 ③圆形面积保留7位小数 ④斐波拉契数除以10007求余数
文章目录前言A+B问题序列求和圆形面积保留7位小数斐波拉契数除以10007求余数结果前言真的是,太久没用python做这种题目了,我的天,输入都忘记咋输入了,笑死了没事慢慢赶起来!!加油A+B问题a,b = map(int, input().split())print(sum([a,b]))问:为什么不用俩个input呢?答:因为输入的格式是12 23这种,也就是意味着必须空格输入,用input就会导致换行输入。序列求和a = int(input())b = (a+1)*a//原创 2022-01-20 23:29:29 · 954 阅读 · 0 评论 -
PAT刷题:1006 换个格式输出整数【python】
n = int(input())str_n = str(n)i = 1j = 1m = 1a = 1b = 1c = 1if n < 10: for i in range(n): print(i+1, end = '')elif n < 100 and n >= 10: for j in range(int(str_n[0])): print('S', end = '') for m in range(int(str原创 2021-11-19 20:49:37 · 556 阅读 · 0 评论 -
PAT刷题:1002 写出这个数 【python】
答案n = input()sum = 0k=0result = ''for int_n in n: sum += int(int_n)str_sum = str(sum)for str in str_sum: if (str == '1'): result += 'yi' if (str == '2'): result += 'er' if (str == '3'): result += 'san'原创 2021-11-17 21:34:38 · 426 阅读 · 0 评论 -
PAT刷题:1001 害死人不偿命的(3n+1)猜想 【python】
答案:n = int(input()) #正整数nsum = 0 #次数while n != 1: if n % 2 == 0: n /= 2 else: n = (3*n+1)/2 sum+=1print(sum)解析:一看就是循环,直接循环计数即可注意:因为太久没用python了,发现有些语法都忘记了输入:n = input()整数输入:n = int(input())没有累加:只有n += 1,没有n++更变:原创 2021-11-17 21:09:47 · 934 阅读 · 0 评论 -
回溯算法经典例题 -八皇后问题(代码不是我写的,只是为了给自己以后理解)
八皇后问题在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。百度百科代码:int g_number = 0; void EightQueen() { const int queens = 8; int ColumnIndex[queens]; for(int i = 0; i < queens; ++ i) ColumnIndex[i] = i;原创 2021-06-07 10:17:39 · 151 阅读 · 0 评论 -
C语言网: 题解 1013 Sn的公式求和 + 1014阶乘求和
package _4_27;import java.util.Scanner;public class _1013 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int a = 0; long sum = 0L; for(int i = 0; i < n; ++i) { a = a * 10 + 2;原创 2021-04-27 16:05:30 · 177 阅读 · 0 评论 -
C语言网 题目 1012: 字符串分类统计(Java)
题目:输入字符串,找出数字,字母,空格和其他字符出现的次数依次列出直接用ASCII表就可以了注意空格是32号【注意】在用这个输入的时候,就不能使用scan.next( );我们得使用scan.nextLine( );这个作为控制台输入的数据因为用next( )的时候,遇到空格就不会再往下读取了但是nextLine( )就可以往下一直读取,不会遇到空格的问腿,遇到回车才会自动不再输入一遍过代码:import java.util.Scanner;public class Main.原创 2021-04-23 19:00:19 · 170 阅读 · 0 评论 -
C语言网:题目 1011最大公约数与最小公倍数(Java)
公约:cd公倍:cm直接暴力解法加简短优化公约数:①.依此从1开始遍历,一直到输入俩数字中最大的数字为止,公约数的查找就是俩个输入的数字都可以整除这个公约数②.然后一直更新公约数的数字,直到循环结束为止,这时候就取得了最大公约数的值公倍数:①.从最大的那个数开始遍历,然后直到俩个数的乘积为止。②.这个数字可以同时整除输出的俩个数字,它就是最小公倍数③.当查找到第一个这种数字的时候,就可以退出循环over,是不是so easy 的事情 public static void mai原创 2021-04-23 18:23:44 · 309 阅读 · 0 评论 -
C语言网:1009题目数字的处理与判断(java)
仔细分析这个题目,其实有点难的写,毕竟有三种输出,不过慢慢分析就很简单啦!一个个分析:第一个输出:输出数字为几行我们直接将其放入方法中如果除以1为【0,9】,为一位数(特别注意数字0)如果除以10为【1,9】,为俩位数以此类推至5位数优化 --> 其实我们可以直接将方法设定为无返回值,但是这个题目后面需要排序和取出数字,我们为了找到数字对应的数组长度,就选择有返回值的方法第二个输出:把每一个数字依此输出这个就有一点点算法的味道了,我用的是取余和取整的混合体,请看我一一娓娓道来.原创 2021-04-23 17:40:34 · 414 阅读 · 0 评论 -
C语言网 : 1010:利润计算(Java暴力解法)
题目分析:输入的数字都是正整数,并且我们输入的数字的范围超出了int型,所以我们使用long型。单纯暴力解法:每输入一个数据,在范围之前的数据全部都已经加好,再由count将所有的数据相加,最后输出count即可有一种改进方法,就是把数据变小好运算,就是在c里面用define将后面的0都存进去,也就是自己命名一个m = 100000,后续的20000 = 2 * m;这样对运算和代码简洁有帮助(没有贴这种代码,我写的是Java法) public static void main(String[.原创 2021-04-23 15:52:39 · 418 阅读 · 0 评论 -
C语言网1006题 : java,求解三数最大
最上面一个是用c写的,其次都是用的Java,中间那个用的是和c一样的方法,最后一个用的是Math直接法C: int a,b,c; scanf("%d %d %d",&a,&b,&c); if(a<b) { int temp = a; a = b; b = temp; } if(a<c) { int temp = a; a = c; c = temp; } if(b<c) { int tem.原创 2021-04-19 21:07:54 · 154 阅读 · 0 评论 -
dotcpp :题目 1007: [编程入门]分段函数求值
不得不说,我要吐血了,习惯写了力扣以后,虽然这个dotcpp的题目蛮基础的,但是真的不习惯啊,她这个。。。。竟然不会保存我的答案,我要是断网了咋搞。。。。。(吐槽ing)这个题目挺简单的,直接看吧#include<iostream>using namespace std;int main(){ int x, y; cin >> x; if(x < 1)y = x; else if(x >= 1 && x &原创 2021-04-17 16:27:59 · 312 阅读 · 0 评论 -
leetcode.283. 移动零 (未成功 3/21)
移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]class Solution {public: void moveZeroes(vector<int>& nums) { sort(nums.begin(),nums.end()); while(nums[0] == 0){ if(num.原创 2021-03-24 15:52:56 · 197 阅读 · 0 评论 -
leetcode.442.数组中重复的数据(未成功,24/28)
数组中重复的数据给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度)其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。示例:输入: [4,3,2,7,8,2,3,1]输出: [2,3]class Solution {public: vector<int> findDuplicates(vector<int>& nums) { int n = nums.size(); vector&l.原创 2021-03-24 15:32:47 · 82 阅读 · 0 评论 -
leetcode.453. 最小操作次数使数组元素相等(未成功,6/84)
最小操作次数使数组元素相等给定一个长度为 n 的 非空 整数数组每次操作将会使 n - 1 个元素增加 1找出让数组所有元素相等的最小操作次数。示例:输入: [1,2,3]输出: 3解释: 只需要3次操作(注意每次操作会增加两个元素的值): [1,2,3] => [2,3,3] => [3,4,3] =>[4,4,4]class Solution {public: int minMoves(vector<int>& nums.原创 2021-03-24 15:36:45 · 153 阅读 · 0 评论 -
leetcode.665. 非递减数列(执行用时: 32 ms 内存消耗: 26.2 MB)
非递减数列给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例 2:输入: nums = [4,2,1]输出: false解释: 你不能在.原创 2021-03-24 15:39:10 · 148 阅读 · 0 评论 -
leetcode 41. 缺失的第一个正数(执行用时: 4 ms 内存消耗: 9.4 MB)
== leetcode 41. 缺失的第一个正数==给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。示例 1:输入:nums = [1,2,0] 输出:3示例 2:输入:nums = [3,4,-1,1] 输出:2示例 3:输入:nums = [7,8,9,11,12] 输出:1分析:将sum = 0作为开始的数量统计当输入为空时,输出sum应该为1(这需要注意的一个遗漏点)当输入不为空的时候,列举出大于1的所有数字然后配套一个循环将数组依此原创 2021-03-16 23:42:02 · 136 阅读 · 0 评论 -
leetcode.448.找到所有数组中消失的数字(没通过,时间过长)
leetcode.448.找到所有数组中消失的数字找到所有数组中消失的数字给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组数组中的元素一些出现了两次,另一些只出现一次找到所有在 [1, n] 范围之间没有出现在数组中的数字示例:输入: [4,3,2,7,8,2,3,1]输出: [5,6]class Solution {public: vector<int> findDisappearedNumbers(vector<int原创 2021-03-24 14:49:24 · 93 阅读 · 0 评论 -
leetcode:274. H 指数(执行用时: 4 ms 内存消耗: 8.4 MB)
leetcode:274. H 指数给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 N - h 篇论文每篇被引用次数 不超过 h 次。示例:输入:citations = [3,0,6,1,5]输出:3解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用原创 2021-03-19 08:45:39 · 220 阅读 · 0 评论 -
leetcode : 628.三个数的最大乘积(40 ms 27 MB) + sort 函数使用规则
在写此题前,先引用一个知识点:sort()函数头文件是“algorithm“,函数默认按升降序排列。1.升序排列sort(nums.begin( ),nums.end( ));(从最小的开始)2.降序排列sort(nums.begin( ),nums.end( ),greater< int >());(从最大的开始)在使用的时候,需要用:vector< int > nums(5)语法规范是:#include < vector >victor <原创 2021-03-10 13:09:57 · 158 阅读 · 0 评论 -
leetcode:414.第三大的数(8 ms 8.7 MB)
力扣:414.第三大的数原创 2021-03-09 18:36:04 · 150 阅读 · 0 评论 -
leetcode:495. 提莫攻击(44ms ,23.5MB)
力扣:495. 提莫攻击题目如下:在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。示例1:输入: [1,4], 2 输出: 4 原因: 第 1 秒初,提莫开始对艾希进行攻击并使其立即中毒。中毒状态会维持 2 秒钟,直到第 2秒末结束。第 4 秒初,提莫再次攻击艾希,使得艾希原创 2021-03-08 01:19:28 · 196 阅读 · 0 评论 -
leetcode:485. 最大连续 1 的个数 (44 ms , 32.6 MB)
力扣: 485. 最大连续 1 的个数题目如下:给定一个二进制数组, 计算其中最大连续 1 的个数。示例:输入:[1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.提示:输入的数组只包含 0 和 1 。 输入数组的长度是正整数,且不超过 10,000。解析:首先力扣里面都是不需要你的输入输出的,他也不需要你的参数,都是给你准备好了,至少这一题不需要。题目分析,相信大家题目都能读懂就是计算出连续输出1的次数最多的那次中,1 的原创 2021-03-08 00:16:37 · 148 阅读 · 0 评论 -
leetcode: 645.错误的集合 + 特殊返回法(只通过所有输入样例,但超出时间)
leetcode: 645.错误的集合 + 特殊返回法题目:集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入:nums = [1,2,2,4] 输出:[2,3] 示例 2:输入:nums = [1,1] 输出:[1,2]就不写分析原创 2021-03-10 14:08:43 · 109 阅读 · 0 评论