
Codes刷题
文章平均质量分 51
CCF,LeetCode,PAT等刷题
Yanir7
If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime.
展开
-
LeetCode:116. 填充每个节点的下一个右侧节点指针(java)
力扣题目方法1:广度优先搜索深度优先搜索想半天想不出来,但是广度优先搜索仔细想就写出来了.....递归真的是玄学!这个方法还蛮容易想得到的,借助一个队列就能完成。/*// Definition for a Node.class Node { public int val; public Node left; public Node right; public Node next; public Node() {}原创 2022-05-25 17:08:01 · 218 阅读 · 0 评论 -
LeetCode :617. 合并二叉树(java版)
力扣思路不难,下笔难...我泰菜了(灬ꈍ ꈍ灬)方法1:广度优先搜索/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; 构造函数: * TreeNode() {} * TreeNode(int val) { this.val = val; }.原创 2022-05-25 10:03:45 · 458 阅读 · 0 评论 -
LeetCode:695. 岛屿的最大面积(java)
题目 一看就是经典的广/深度优先搜索算法,对于这两种算法,我比较喜欢前者,提前申明不是因为前者渣!而因为前者好理解,好上手。至于为什么说他渣,你细品,品不到就去看看我上一篇博客叭~废话不多说,直接上解题和代码,基本思路其实跟上一题差不多!就是多了两层循环遍历。方法1:广度优先搜索先回顾一下算法流程重点:queue是鱼塘,先广撒网(for);再判断是非(if)class Solution { public int maxAreaOfIsland(int[][] grid)...原创 2022-05-13 15:04:41 · 388 阅读 · 0 评论 -
LeetCode:733. 图像渲染(java版)——BFS是渣男/女,DFS是方知有
题外话:看完题目,是不是一头雾水。有疑问就对了,不知道出题者的语文老师看了有啥感想。题目意思其实很简单,就是给你一个初始坐标点(sr,sc),找和该点附近像素值相同的坐标,而这附近的定义就是上下左右,不包括斜对角;然后将这些像素值替换为新的像素值newColor。虽然题目是easy,但是对我而言不是easy༼༎ຶᴗ༎ຶ༽(so sad...话不多说,直接看解题方法吧!方法1:广度优先搜索BFS(Broad First Search)我们从给定的起点开始,进行广度优先搜索。...原创 2022-05-10 17:04:06 · 348 阅读 · 0 评论 -
LeetCode:567. 字符串的排列(java)
一开始以为只是简单的找子串,结果,是找子串的排列,我能想到的是暴力解法,也算是变相的滑动窗口,只是我是用HashMap来记录s1的(单)词频,官方解题是用数组。我觉得这题的关键点在通过比较字母数量来判断是否为子串的排列。【由于排列不会改变字符串中每个字符的个数,所以只有当两个字符串每个字符的个数均相等时,一个字符串才是另一个字符串的排列。】话不多说,直接上解题思路和代码!以下是三种解题方式:方法1:双循环采用双循环,外层循环是窗口移动,内层循环是大小为n1(即s1的长度)的窗口。用HashM..原创 2022-05-09 21:46:09 · 859 阅读 · 1 评论 -
LeetCode:167. 两数之和 II - 输入有序数组(java)
这题用暴力破解法O(n^2)通不过。1.可以用先减一个数,后用二分查找法寻找另一个数的方法。具体地,在数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于目标值减去第一个数的差。利用数组的有序性质,可以通过二分查找的方法寻找第二个数。为了避免重复寻找,在寻找第二个数时,只在第一个数的右侧寻找。代码详见:LeetCode-Solution2.采用双指针法——缩减搜索空间双指针挺好理解的。但是我是凭感/直觉做的,具体的理论解释,我...原创 2022-05-01 15:33:58 · 1827 阅读 · 0 评论 -
LeetCode:283. 移动零(java)
方法1:加一个数组——以空间换时间class Solution { public void moveZeroes(int[] nums) { // 1.将结果放入新数组res int len=nums.length; int[] res=new int[len]; int i=0; int j=len-1; int pos=0; while(i<=j){ ...原创 2022-04-30 17:57:57 · 949 阅读 · 0 评论 -
LeetCode:189. 轮转数组(Java)
方法1:跳序轮转法——带标记,时间复杂度和空间复杂度均为O(n)因为有些特殊情况,会陷入循环,比如这个例子:我不知道怎么处理这种情况,所以直接搞个标记数组falgs[]来看看这个位置的数字是否被处理过。方法二来改进这个陷入循环的问题class Solution { public void rotate(int[] nums, int k) { // 1.跳序 轮转法——带标记,时间复杂度和空间复杂度均为O(n) int len=n...原创 2022-04-30 17:39:52 · 1210 阅读 · 0 评论 -
CCF认证回顾
我们的毕业要求CCF200分,说实话,我真的很担心我毕业被卡在CCF上,然后这东西又贵,一次200,+会员费50。CCF一年有3次考试认证——3(4)月,9月。12月。认证具体时刻为周日下午1:30—5:30。可以带书籍资料。编译环境有C、C++、Java、Python等。编译器:C++有Dev和codeblock,Java有eclipse,Python有IDLE。(针不戳,我不会用IDLE的,3.6版本连行显示都没有)。我用codeblock编辑python。然后还自己去添加了python...原创 2021-04-14 15:07:53 · 4482 阅读 · 2 评论 -
CCF 202006-1 线性分类器
# 202006-1n,m=map(int,input().split())points=[] #n个点pars=[] #m组参数for i in range(n): x,y,label=input().split() points.append([int(x),int(y),label])for i in range(m): pars.append(list(map(int,input().split())))for p in pars: flag_A=0 fl...原创 2021-04-09 11:20:24 · 123 阅读 · 0 评论 -
CCF 201403-2 窗口 C++&python
题目三言两语开始回顾自己之前刷的题。然后,看到这题,输出是输入的窗口的编号,还在头疼编号怎么处理,用字典来存储吗?然后,翻看自己之前的代码,之前我是用窗口坐标二维数组的第5列来存储编号。hhhhh我真是个小机灵鬼~(自己之前敲得代码一个月不到就忘了,果然,你永远不可能两次踏进同一条河...)C++解题:#include <iostream> using namespace std;int main(){ //输入【这边当时用C++敲的时候,m,n没留意,和题目...原创 2021-04-06 13:35:11 · 125 阅读 · 0 评论 -
CCF 201812-2小明放学 python
题目感想emmmm这是所有第二题中里面我最不想写的一题,就是理不清思路,大概知道怎么算,但是就是理不清逻辑,以至于无法下手。本来都想放弃了,想着反正不会考原题,但是,抱着刷完的想法,看了别人的代码,还是敲完了。因为是借鉴别人的,所以这里放上原文链接。# 输入r,y,g=map(int,input().split()) #r1,y2,g3 红黄绿灯n=int(input())line=[]for i in range(n): f,t=map(int,input().split原创 2021-04-05 15:57:40 · 148 阅读 · 0 评论 -
CCF 201612-2 工资计算 Python
题目解题题目可以说是相当简单,但是我就是懒得算==最后还是手动计算,没有用for循环和列表。注意计算不要出错以及注意结果四舍五入取整,AC是没问题的。import math# 输入T=int(input())# 计算税前工资S=0if T<=3500: S=Telif T<=4955: S=(T-105)/0.97elif T<=7655: S=(T-455)/0.9elif T<=11255: S=(T-1255)/0.8elif T&原创 2021-04-04 16:21:23 · 152 阅读 · 0 评论 -
CCF 202006-2 稀疏向量 python
题目感(fei)想(hua)第一次拿了60分,运行错误,估计是后面4个测试点开销问题。简化解题,AC成功~(撒花✿✿ヽ(°▽°)ノ✿)忍不住感叹,python大法好,适合我这种编程渣渣~代码# 方法1:60分# 输入n,a,b=map(int,input().split())avec={}bvec={}for _ in range(a): i,v=map(int,input().split()) avec[i]=vfor _ in range(b): i,v=ma原创 2021-04-02 16:22:25 · 231 阅读 · 2 评论 -
CCF 201809-2 买菜 python
题目代码# 201809-2 买菜# 输入n=int(input())line=[]maxt=0for i in range(2*n): s,t=map(int,input().split()) line.append([s,t]) maxt=t if t>maxt else maxttim=[0]*maxt #时间轴# 计算聊天时长for l in line: s,t=l[0],l[1] for i in range(s,t): tim[i]+=1原创 2021-04-01 10:48:38 · 321 阅读 · 1 评论 -
ccf201604-2 俄罗斯方块 python
这边是废话看到这题的时候是在心神不宁的情况下写的,第一次写的时候拿了30分,第二次40分。。。然后就很绝望,放了一两天,今天重新拿起来再写。网上的代码又不想看(啊,我是真的懒得看别人的代码,特别是没有注释的那种...)然后,就硬着头皮想自己到底错哪了,结果显示的是错误,不是编译错误,那就是代码不够严谨呗,有些案例不能通过。在仔仔细细看了一遍代码以后,发现问题了。一开始我是把方块从下往上移动(从下往上我觉得快一点,加上4*4的矩阵后,没有为2的就OK)。就这样,聪明反被聪明误,我让俄罗斯方块直接横穿下原创 2021-03-30 20:53:57 · 420 阅读 · 4 评论 -
PAT——1050 String Subtraction
1050String Subtraction(20分)Given two stringsS1andS2,S=S1−S2is defined to be the remaining string after taking all the characters inS2fromS1. Your task is simply to calcu...原创 2019-09-10 21:25:36 · 138 阅读 · 0 评论 -
PAT——1041 Be Unique
1041Be Unique(20分)Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,104]. T...原创 2019-09-09 21:36:38 · 145 阅读 · 0 评论 -
PAT——1025 PAT Ranking (25 分)
1025PAT Ranking(25分)Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several pl...原创 2019-09-09 09:48:23 · 128 阅读 · 0 评论 -
PAT——1009 说反话
1009说反话(20分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:...原创 2019-09-06 14:44:34 · 151 阅读 · 1 评论 -
1036 跟奥巴马一起编程 (15 分)
1036跟奥巴马一起编程(15分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:...原创 2019-09-05 20:31:36 · 250 阅读 · 0 评论 -
PAT——迷之错误
结果:段错误;原因:测试案例中数组可能越界;原创 2019-09-05 20:11:04 · 164 阅读 · 0 评论 -
HDU——1205 吃糖果
1205 吃糖果Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 54965Accepted Submission(s): 15737Problem DescriptionHOHO,终于从Speakless手上赢走了所有...原创 2019-09-10 22:24:42 · 184 阅读 · 0 评论 -
以空间换时间——散列思想
以空间换时间作散列查找1.简单版:查找数字#include <cstdio>#include <vector>#include <cstring>using namespace std;const int MAXSIZE=100;//m个数字{x,y,z...}在n个数字{a,b,c...}中是否出现以及出现的次数int main(){...原创 2019-09-09 10:14:25 · 710 阅读 · 0 评论 -
Leecode初级——字符串篇2(有效的字母异位词、验证回文字符串、字符串转换整数 (atoi))
/*4.有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整...原创 2019-03-13 21:53:12 · 227 阅读 · 0 评论 -
Leecode初级——字符串篇1(反转字符串、整数反转、 字符串中的第一个唯一字符)
/*1.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l",&qu原创 2019-03-13 19:45:38 · 239 阅读 · 0 评论 -
Leecode初级——数组篇4(旋转图像)
/* 旋转图像给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,...原创 2019-03-11 19:27:56 · 161 阅读 · 0 评论 -
Leecode初级——数组篇3(加一、移动零、两数之和、有效数独)
/*加一:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2019-03-10 21:24:30 · 292 阅读 · 0 评论 -
Leecode初级——数组篇2(存在重复、只出现一次的数字、两个数组的交集)
/*存在重复* 给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 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* */package com...原创 2019-03-09 16:04:01 · 429 阅读 · 0 评论 -
LeeCode初级——数组篇1(删除重复项、买卖股票的最佳时机、旋转数组)
/*从排序数组中删除重复项* 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元...原创 2019-03-09 16:01:06 · 228 阅读 · 0 评论 -
拼夕夕2018年笔试题——小熊吃糖
有n只小熊,他们有着各不相同的战斗力。每次他们吃糖时,会按照战斗力来排,战斗力高的小熊拥有优先选择权。前面的小熊吃饱了,后面的小熊才能吃。每只小熊有一个饥饿值,每次进食的时候,小熊们会选择最大的能填饱自己当前饥饿值的那颗糖来吃,可能吃完没饱会重复上述过程,但不会选择吃撑。现在给出n只小熊的战斗力和饥饿值,并且给出m颗糖能填饱的饥饿值。求所有小熊进食完之后,每只小熊剩余的饥饿值。输入描述...原创 2019-09-11 15:11:15 · 270 阅读 · 0 评论 -
递归——全排序 & 八皇后
1.全排序问题例:输出{1,2,3}的全排序#include <cstdio>#include <algorithm>using namespace std;const int MAXSIZE=11;int count=0;int n,P[MAXSIZE];bool hashTable[MAXSIZE]={false};void generateP(...原创 2019-09-10 16:52:37 · 108 阅读 · 0 评论 -
KMP模式匹配算法
从严讲的数据结构那本紫色的书看到这个KMP算法,头大,真的,全是字,这怎么看嘛....然后看了其他的一些书的,看到 j[next]的部分内容,果断弃书,真的看不下去,又枯燥有苦涩....然后,b站大法好啊,看了灯笼《KMP字符串匹配算法2》(视频1作为理解算法,视频2直接上手码,很真实!)和三哥《汪都能听懂的KMP字符串匹配算法》(看完我觉得我比得上汪了...)的视频。本汪差不多理解了,虽然不是很...原创 2019-08-15 23:22:25 · 161 阅读 · 0 评论 -
Codeup——2018 Problem B 数列
问题 B: 数列时间限制:1 Sec内存限制:32 MB题目描述编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如下图形(参见样例)。输入输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。输出对应每个样例输出要求的图形(参见样例格式)。样例输入16样例输出 0 ...原创 2019-09-11 11:47:52 · 158 阅读 · 0 评论 -
Codeup——1907 Problem A 吃糖果
问题 A: 吃糖果时间限制:1 Sec内存限制:32 MB题目描述名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1...原创 2019-09-10 21:54:53 · 152 阅读 · 0 评论 -
Codeup——2066 Problem B: 分组统计
问题 B: 分组统计时间限制:1 Sec内存限制:32 MB提交:1754解决:440题目描述先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。输入输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。输出输出m行,格式参见样例,按从...原创 2019-09-09 17:52:38 · 195 阅读 · 0 评论 -
Codeup——1782 Problem A: 谁是你的潜在朋友
问题 A: 谁是你的潜在朋友时间限制:1 Sec内存限制:32 MB题目描述 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整...原创 2019-09-09 15:39:39 · 142 阅读 · 0 评论 -
Codeup——5901: 【字符串】回文串
5901: 【字符串】回文串时间限制:1 Sec内存限制:128 MB题目描述读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。输入一行字符串,长度不超过255。输出如果是回文串,输出“YES”,否则输出“NO”。样例输入12321样例输出YES#include...原创 2019-09-05 21:47:31 · 197 阅读 · 0 评论 -
Codeup——1934: 找x
1934: 找x时间限制:1 Sec内存限制:32 MB题目描述输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。样例输入41 2 3 43样例输出...原创 2019-09-05 20:10:18 · 122 阅读 · 0 评论