数据结构干瞪眼
文章平均质量分 54
UncleJokerly
Tough days don't last.Tough people do.
展开
-
LeetCode 383.赎金信(模拟,for(char c : 容器)的使用)
最后遍历记录字母出现次数的数组record,如果出现负数说明magazine中的字母不够ransomNote用,则返回false。如果没有出现负数说明ransomNote能由magazine里面的字符构成。因为输入数据都是小写字母,所以可以维护一个长度为26的数组record用于记录每个字母出现的次数。再遍历ransomNote数组,ransomNote数组中的字母每出现一次则减去对应字母的次数。先遍历magazine数组,将magazine数组中出现的字母都记录下来。原创 2024-04-20 10:20:52 · 258 阅读 · 1 评论 -
LeetCode 454.四数相加II(模拟,map.getOrDefault()的使用)
遍历nums3和nums4,在map中寻找是否存在-(nums3[k] + nums4[l]),存在则记录出现的次数,即为符合条件的元组个数。和对应出现的次数放到map中,次数可以使用map.getOrDefault获取。遍历nums1和nums2,将相加的结果。,请你计算有多少个元组。原创 2024-04-20 09:37:42 · 386 阅读 · 0 评论 -
LeetCode 1.两数之和(HashMap.containsKey()、.get、.put操作)
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。整数,并返回它们的数组下标。你可以想出一个时间复杂度小于。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2024-04-17 10:16:07 · 305 阅读 · 0 评论 -
LeetCode 202.快乐数(HashSet + 按位取数)
所以这道题目使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止。判断sum是否重复出现就可以使用unordered_set。这道题目看上去貌似一道数学问题,其实并不是!编写一个算法来判断一个数。原创 2024-04-16 10:48:00 · 480 阅读 · 0 评论 -
LeetCode 349.两个数组的交集(HashSet的使用)
输出结果中的每个元素一定是。[4,9] 也是可通过的。原创 2024-04-16 10:26:04 · 208 阅读 · 0 评论 -
LeetCode 142.环形链表II(数学公式推导)
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。返回索引为 1 的链表节点链表中有一个环,其尾部连接到第二个节点。返回索引为 0 的链表节点链表中有一个环,其尾部连接到第一个节点。返回 null链表中没有环。原创 2024-04-10 10:30:50 · 953 阅读 · 0 评论 -
LeetCode 面试题 02.07.链表相交(判断两个结点是否相同)
此时我们就可以比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB,则找到交点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。在 B 中,相交节点前有 1 个节点。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。原创 2024-04-07 22:23:54 · 926 阅读 · 0 评论 -
LeetCode 19.删除链表的倒数第N个结点
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。给你一个链表,删除链表的倒数第。思路是这样的,但要注意一些细节。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?原创 2024-04-07 11:33:34 · 359 阅读 · 0 评论 -
LeetCode 24.两两交换链表中的节点
交换完后,cur应该指向temp的前一个结点,此时的firstNode指针就是指向了temp的前一个结点,所以交换完后,cur的下一步应该到firstNode。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。设置temp指针,指向secondNode后的结点,即cur后的第三个结点,用来保存下一步要成对交换的第一个结点。设置secondNode指针,指向cur后的第二个结点,设置firstNode指针,指向cur后的第一个结点,设置cur指针从头结点开始向后遍历,原创 2024-04-07 10:58:40 · 294 阅读 · 0 评论 -
LeetCode 206. 反转链表
pre和cur每往前走一步就修改当前结点指针的方向,这时候还需要一个指针temp来保存一下修改前该结点下一个结点的位置,为了修改后cur能走到修改前的下一个结点。为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。之前链表的头节点是元素1, 反转之后头结点就是元素5 ,这里并没有添加或者删除节点,仅仅是改变next指针的方向。如果再定义一个新的链表,实现链表元素的反转,其实这是对内存空间的浪费。原创 2024-04-07 10:19:52 · 388 阅读 · 0 评论 -
LeetCode 707. 设计链表(单链表、(非循环)双链表 模板)
/ 链表变为 1->2->3。// 现在,链表变为 1->3。(什么时候加this什么时候不加?感觉刷题的时候好像不用考虑权限修饰符和this)myLinkedList.get(1);以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。是指向下一个节点的指针/引用。原创 2024-04-04 21:49:03 · 391 阅读 · 0 评论 -
王道数据结构——树
先中后序遍历 递归和非递归层次遍历二叉树的中序线索化中序线索二叉树的中序序列(找后继)和逆中序序列(找前驱)原创 2022-08-11 19:09:05 · 384 阅读 · 0 评论 -
HDU - 1237 简单计算器(中缀表达式求值)
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。Sample Input1 + 24 + 2 * 5 - 7 / 110Sample Output3.0013.36解题思路:htt.原创 2020-08-23 12:10:42 · 374 阅读 · 0 评论 -
Uva136 Ugly Numbers(优先队列priority_queue的使用 大白例题5-7)
题意:丑数是指不能被2,3,5以外的其他素数整除的数,求第1500个丑数解题思路:从小到大生成各个丑数,对于任意丑数x,2x,3x,5x也是丑数,这样就可以用一个优先队列保存suo'y所有已生成的丑数,每次取出最小的丑数生成3个新的丑数。唯一需要注意的是当前的生成的丑数有没有生成过。AC代码:#include<stdio.h>#include<iostream...原创 2018-11-12 22:06:15 · 272 阅读 · 0 评论 -
团体程序设计天梯赛 L1-005 考试座位号(结构体)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行给出一...原创 2019-03-27 10:02:41 · 222 阅读 · 0 评论 -
2019年第十届蓝桥杯C/C++程序设计本科B组省赛 迷宫 输出路径(BFS记录路径&&模板)+赛后心得
昨天比赛刚结束 题目还没找着题意大致如下:给你一个30*50的图,图只有0和1组成,其中0是路1是墙,左上角和右下角是'0',输出最短路径并且按最小字典序输出,即按D<L<R<U的顺序输出。解题思路:BFS遍历过程中记录路径,既然题目中要求了遍历的顺序就按题目中的来遍历。记录路径不要忘记在扩展每一个点的时候把上一个点的信息先继承下来,因为这里使用的是数组...原创 2019-03-25 09:34:10 · 1288 阅读 · 5 评论 -
HYSBZ - 1215 24点游戏(DFS+哈希判重)
为了培养小孩的计算能力,大人们经常给小孩玩这样的游戏:从1付扑克牌中任意抽出4张扑克,要小孩用“+”、“-”、“×”、“÷”和括号组成一个合法的表达式,并使表达式的值为24点。这种游戏就是所谓的“24点游戏”。请你编程求出对于给出的任意4个正整数a、b、c、d,请你编程求出这4个整数能组成多少个值为24的不同表达式。Input输入共一行,为4个正整数a、b、c、d (0<=a,b,c...原创 2018-11-19 20:54:44 · 678 阅读 · 0 评论 -
OpenJ_Bailian - 4123 马走日(DFS)
马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。Input第一行为整数T(T < 10),表示测试数据组数。 每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=m-1...原创 2018-11-19 13:40:27 · 814 阅读 · 0 评论 -
POJ3083 Children of the Candy Corn(BFS+DFS)
The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zombies, chainsaw-wielding psychopaths, hippies, and other terrors on their que...原创 2018-11-08 18:28:40 · 225 阅读 · 0 评论 -
HDU1728 逃离迷宫(BFS+思维)
给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感的人,因此,她在行走过程中,不能转太多弯了,否则她会晕倒的。我们假定给定...原创 2018-11-08 12:23:20 · 228 阅读 · 0 评论 -
线段树入门讲解+模板(单点查询/更新、区间查询/更新)
先上模板:#include<bits/stdc++.h>using namespace std;struct node{ int l,r,w,lazy;//tree的l,r表示数组区间[l,r],w表示[l,r]区间和 }tree[400001];//lazy!=0是加值,lazy!=-1是改值 void build(int v,int l,int r)...原创 2019-04-21 17:34:10 · 2215 阅读 · 2 评论 -
HDU 1394 Minimum Inversion Number(线段树求逆序数)
The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i < j and ai > aj.For a given sequence of numbers a1, a2, ..., an, if we move the f...原创 2019-04-23 15:30:11 · 224 阅读 · 0 评论 -
POJ - 2528 Mayor's posters(线段树区间覆盖+离散化)
The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing their electoral posters at all places at their whim. The city council has finally d...原创 2019-04-28 21:22:30 · 290 阅读 · 0 评论 -
HDU - 1166 敌兵布阵(线段树单点更新+区间查询)
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战...原创 2019-04-28 21:31:45 · 180 阅读 · 0 评论 -
HDU - 1754 I Hate It(线段树单点更新+区间查询)
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5...原创 2019-04-28 21:33:28 · 206 阅读 · 0 评论 -
HDU - 1698 Just a Hook (线段树区间改值)
In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.Now Pud...原创 2019-04-28 21:40:20 · 290 阅读 · 0 评论 -
线段树练习题集
线段树题目整合1.hdu1166 敌兵布阵更新节点,区间求和。2.hdu1754 I Hate It更新节点,区间最值..3.hdu1698 Just a Hook成段更新,总区间求和..4.hdu1394 Minimum Inversion Number更新节点,区间求和.5.hdu1779(这个爆炸了,别做了)成段更新,区间最值.6.pku...原创 2019-04-28 21:44:48 · 2295 阅读 · 0 评论 -
2015年第六届蓝桥杯C/C++程序设计本科B组国赛 完美正方形(DFS)
标题:完美正方形如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形。历史上,人们花了很久才找到了若干完美正方形。比如:如下边长的22个正方形2 3 4 6 7 8 12 13 14 15 16 17 18 21 22 23 24 26 27 28 50 60如【图1.png】那样组合,就是一种解法。此时,紧贴上边沿的是:60 50紧贴下边沿的是:26 2...原创 2019-05-22 09:00:58 · 376 阅读 · 1 评论 -
2015年第六届蓝桥杯C/C++程序设计本科B组国赛 关联账户(并查集)
标题:关联账户为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。如果两个账户间发生过转账,则认为有关联。如果a,b间有关联, b,c间有关联,则认为a,c间也有关联。对于调查范围内的n个账户(编号0到n-1),警方已知道m条因转账引起的直接关联。现在希望知道任意给定的两个账户,求出它们间是否有关联。有关联的输出1,没有关联输出0小明给出了如下的解决方案:#inclu...原创 2019-05-22 09:08:42 · 270 阅读 · 0 评论 -
NYOJ927 The partial sum problem(DFS)
The partial sum problem 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 One day,Tom’s girlfriend give him an array A which contains N integers and asked him:Can you choose some integers from the N integers...原创 2017-05-12 21:03:08 · 286 阅读 · 0 评论 -
priority_queue()(优先队列的使用、重载)
关于为什么友元函数重载时不能使用">"以及向优先队列中插入指针元素的问题:优先级队列几个应用详解(friend bool operator)#include<stdio.h>#include<iostream>#include<vector>#include<queue>using namespace std;...原创 2018-11-12 21:46:48 · 1283 阅读 · 1 评论 -
POJ3126 Prime Path(BFS)
The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices. — It is a matter of se...原创 2018-10-27 14:50:25 · 291 阅读 · 0 评论 -
Aizu - ALDS1_13_A 8 Queens Problem (八皇后问题入门 DFS)
The goal of 8 Queens Problem is to put eight queens on a chess-board such that none of them threatens any of others. A queen threatens the squares in the same row, in the same column, or on the same d...原创 2018-04-16 16:32:45 · 279 阅读 · 0 评论 -
51Nod1109 01组成的N的倍数(BFS)
给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1。求最小的M。例如:N = 4,M = 100。Input输入1个数N。(1 <= N <= 10^6)Output输出符合条件的最小的M。Sample Input4Sample Output100解题思路:BFS从0开始,val=val*10+i(i==0||i==1)重点:如果直接存数...原创 2018-03-27 17:16:34 · 269 阅读 · 0 评论 -
HDU1258/POJ1564 Sum It Up(DFS)
这都是一道题。。。OrzGiven a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up to t. For example, if t=4, n=6, and the list is [4,3,2,2,1,1], then there...原创 2018-03-24 12:29:30 · 387 阅读 · 0 评论 -
ZOJ2412 Farm Irrigation (DFS)
Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot of samll squares. Water pipes are placed in these squares. Different square has a different type of ...原创 2017-06-13 22:02:45 · 314 阅读 · 0 评论 -
HDU1584蜘蛛牌(DFS)
蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有的牌按同一花色从小到大排好,为了简单起见,我们的游戏只有同一花色的10张牌,从A到10,且随机的在一行上展开,编号从1到10,把第i号上的牌移到第j号牌上,移动距离为abs(i-j),现在你要做的是求...原创 2017-05-22 20:41:00 · 582 阅读 · 0 评论 -
HDU1072 Nightmare(BFS)
Ignatius had a nightmare last night. He found himself in a labyrinth with a time bomb on him. The labyrinth has an exit, Ignatius should get out of the labyrinth before the bomb explodes. The initial ...原创 2017-05-18 21:56:31 · 282 阅读 · 0 评论 -
NYOJ1058 部分和问题(DFS)
部分和问题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给定整数a1、a2、…….an,判断是否可以从中选出若干数,使它们的和恰好为K。 输入 首先,n和k,n表示数的个数,k表示数的和。 接着一行n个数。 (1<=n<=20,保证不超int范围) 输出 如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,...原创 2017-05-12 21:40:50 · 381 阅读 · 0 评论 -
NYOJ325 zb的生日(DFS)
时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 今天是阴历七月初五,acm队员zb的生日。zb正在和C小加、never在武汉集训。他想给这两位兄弟买点什么庆祝生日,经过调查,zb发现C小加和never都很喜欢吃西瓜,而且一吃就是一堆的那种,zb立刻下定决心买了一堆西瓜。当他准备把西瓜送给C小加和never的时候,遇到了一个难题,never和C小加不在一块住,只能...原创 2017-05-09 21:49:00 · 465 阅读 · 0 评论