- 博客(39)
- 收藏
- 关注
原创 力扣-动态规划
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶题解爬楼梯,找到传递函数。
2024-07-13 01:56:53 804
原创 力扣-bfs
何为广度优先搜索?广度优先搜索,即bfs。不同于dfs(走到底然后再换另外一条路),bfs更像是一层一层的走。常常用来处理最短路径问题。
2024-07-12 18:12:33 598
原创 力扣-回溯法
对于回溯法,首先找到边界条件以及结束的条件。一般为设置的i等于行数。边界条件一般为不要越界。一般还需要设置标记函数。然后一行一行进行访问或者一个位置一个位置的访问,访问过的标记函数置为true。接着继续下一个或者下一行(一般是递归)。然后结束后还原上面的标记函数以及board(一般会设置一个作为答案)。符合的就push_back到ans数组中去。
2024-07-12 00:09:49 925
原创 力扣-二分查找
34. 在排序数组中查找元素的第一个和最后一个位置题目给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。示例 1:[3,4]示例 2:[-1,-1]示例 3:[-1,-1]nums是一个非递减数组题解在一个递增的数组中找target,找到数组中的第一个位置和第二个位置。在这里可以使用二分查找的方法。
2024-07-09 15:12:24 1090
原创 力扣-贪心算法4
题目假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个表示第i个人的身高为hi,前面有ki个身高大于或等于hi的人。请你重新构造并返回输入数组people所表示的队列。返回的队列应该格式化为数组queue,其中是队列中第j个人的属性(queue[0]是排在队列前面的人)。编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。
2024-07-05 16:42:10 900 1
原创 力扣-贪心算法3
题目给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。[9,7,8]划分结果为 "ababcbaca"、"defegde"、"hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。[10]题解又是一道贪心算法的典型题目,思路如下。
2024-07-03 17:53:57 804
原创 力扣-贪心算法2
你需要移除两个 [1,2] 来使剩下的区间没有重叠。你不需要移除任何区间,因为它们已经是无重叠的了。需要移除区间的最小数量,使剩余区间互不重叠。移除 [1,3] 后,剩下的区间没有重叠。
2024-06-20 22:06:49 215
原创 力扣-贪心算法
就是通过局部最优来得到全局最优,好比AB一起吃自助餐,最优的就是A吃到最大量,B也吃到最大量,都是局部最优,进而得到全局最优。且二者的局部最优互不影响。
2024-06-19 22:40:29 839
原创 10345 前缀平均值
数列的前缀平均值(prefix average)问题:给定存储n个double型浮点数的数组X,要计算数组A,其中A[i]为元素X[0],…, X[i]的平均值(i=0,…,n-1)(1<=n<=1000000),即前缀平均值在经济学和统计学中广泛应用。例如,给定一个基金的年回报,投资者想要知道前一年、前三年、前五年以及前十年奖金的年度平均回报。前缀平均值还可以用作某一快速变化的参数的“平滑”函数。
2023-10-20 00:13:45 171
原创 9715 相邻最大矩形面积
在X轴上水平放置着 N 个条形图,这 N 个条形图就组成了一个柱状图,每个条形图都是一个矩形,每个矩形都有相同的宽度,均为1单位长度,但是它们的高度并不相同。例如下图,图1包含的矩形的高分别为2,1,4,5,1,3,3 单位长度,矩形的宽为1单位长度。你的任务就是计算柱状图中以X轴为底边的最大矩形的面积。图2阴影部分就是上述例子的最大矩形面积。
2023-10-19 21:01:18 204
原创 Socket编程入门
要实现一个简单的客户端-服务器端交互程序,使用Socket建立TCP连接,通过在服务器端监听8888端口,并接收客户端发来的请求字符串“getdatetime”来获取系统当前时间,并且返回给客户端,客户端程序连接到服务器端,发送完请求字符串后,接收来自服务器端返回的当前时间字符串并且在控制台打印出来。2.2、客户端程序,连接到服务器端程序,发出字符串:getdatetime,当接收到服务器端响应后,把返回的日期时间字符串显示在黑窗口中,退出。2、创建完Socket对象后,我们等待客户端连接。
2023-03-25 14:32:13 272
原创 进程描述和控制
进程定义:一个正在执行中的程序。一个正在计算机上执行的程序实例。能分配给处理器并由处理器执行的实体。一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。构成进程的基本元素:程序代码和数据集进程块标识符状态优先级程序计数器内存指针上下文数据I/O状态信息记账信息……
2023-03-21 23:17:50 101
原创 P1116 车厢重组
在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转 180180 度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。
2022-12-30 20:23:57 386
原创 scau 电影《长津湖》
2021年国庆大卖电影《长津湖》以长津湖战役为背景,讲述了一个志愿军连队在极度严酷环境下坚守阵地奋勇杀敌,为长津湖战役胜利作出重要贡献的感人故事。一天,光明村也上影《长津湖》了,大家都去电影院买票。假设票价是50元整,去买票的人都是现金支付,且每人要么只带一张50元大钞,要么只带一张100元大钞。小村里的电影院只有一个买票窗口,并且开始卖票时,没有准备任何找零的钱(这意味着先收一张50元大钞,才能给下一位持100元大钞的买主找零)。
2022-11-28 15:48:07 343
原创 数据结构小测二叉树的遍历运算
描述二叉树的三种遍历都可以通过递归实现。如果我们知道一棵二叉树的先序和中序序列,可以用递归的方法求后序遍历序列。输入格式两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示,且字符串长度不超过30。输出格式一个字符串,树的后序序列。输入样例abcdebcade输出样例cbeda思路给出了先序遍历和中序遍历,首先回顾一下先序遍历和中序遍历。先序遍历:先根结点再左孩
2022-05-09 20:59:34 386
原创 18924 二叉树的宽度
Description二叉树的宽度指的是具有节点数目最多的那一层的节点个数。 1 / \ 2 3 / 4 答案为2, 第二层节点数最多,为2个节点。输入格式共n行。第一行一个整数n,表示有n个结点,编号为1至n,结点1为树根。(1<=n<=50)第二行至第n行,每行有两个整数x和y,表示在二叉树中x为y的父节点。x第一次出现时y为左孩子输出格式输出二
2022-04-18 22:19:41 1995 2
原创 18719 填涂颜色
Description由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下:涂色前:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 1涂色后:0 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 1 1
2022-04-15 17:01:48 124
原创 18718 航行
Description银河帝国正走向覆亡。为保留文明的种子,你需要驾驶飞船将一批“颛家”从帝国首都护送至银河边缘的基地。现在已知航线是一条直线,帝国首都为起点(坐标0),基地为终点(坐标L),在这条航线上有N个空间站可以补充飞船的能源。第i个空间站的坐标为ai,飞船停靠在第i个空间站必须花费bi个银河币,同时让你的飞船能量恢复为最大值M。出发前飞船的能量是满额的M,每一点能量都可以让飞船航行一个坐标单位。现在你已经通过募捐(榨篇)获得了S个银河币,请计算下飞船能否到达基地。输入格式
2022-04-15 16:57:46 284
原创 18720 迷宫问题 (最短路径)
Description迷宫是一个n*m的矩阵,玩家需要迷宫入口(坐标1,1)出发,寻找路径走到出口(n,m)。请判断玩家能否从迷宫中走出,如果能走出迷宫输出,输出最短的路径长度,否则输出-1。题目图像链接http://172.26.14.60:8000/uoj/pic/18720_1585577001195_77685.jpg输入格式第一行两个整数n和m,代表n行m列。(1<=n,m<=10)下面n行每行m个字符,0代表可以通行,1代表不可以通行。
2022-04-15 10:59:26 1413
原创 19044 平分物品(递归实现指数型枚举)
Description网易2021校招笔试-文本挖掘算法工程师(提前批)第一题现在有n个物品,每一个物品都有一个价值,现在想将这些物品分给两个人,要求这两个人每一个人分到的物品的价值总和相同(个数可以不同,总价值相同即可,剩下的物品就需要扔掉,现在想知道最少需要扔多少价值的物品才能满足要求分给两个人。要求:时间复杂度O(3^n),空间复杂度O(n)输入格式第一行输入一个整数 T,代表有 T 组测试数据。对于每一组测试数据,一行输入一个整数 n ,代表物品的个数。接下来
2022-04-10 19:02:24 407
原创 18717 舞伴问题
Description假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。输入格式第一行两个正整数n和m,分别代表男队和女队的人数,规定男队编号从1至n,女队编号从1至m。第二行输入一个正整数k,表示第k对舞伴。(1<=n,m,k<=100)输出格式输出第k对舞伴
2022-04-10 17:04:36 162
原创 18928 递归实现全排列
Description把 1至n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。(1<=n<=9)输出格式按照从小到大的顺序输出所有方案,每行一个方案。同一行相邻两个数用一个空格隔开。对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。输入样例3输出样例1 2 31 3 22 1 32 3 13 1 23 2 1思路题意:有n个数,将其随意排列,然后按照前面
2022-04-10 16:57:40 602
原创 18712 递归实现组合
Description找出从自然数1、2、……、m中任取k个数的所有组合,组合中字典序小的先输出。例如m=5,k=3,应输出1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 输入格式两个整数m和k,(1<=k<=m<=10)输出格式按字典序输出所有组合输入样例5 2输出样例1 2 1 3 1 4 1 5 2 3 2 4
2022-04-10 16:22:47 864 1
原创 19071 递归实现指数型枚举
一些有关于递归以及dfs(深度优先搜索算法)的总结,主要依据这个题。本题目题面:给你N个整数,从中选取任意多个(至少选择一个),输出所有可能的选择方案,无需输出每个数字,只需要输出选择数字的和。输入格式第一样输入一个整数 n。第二行输入n个整数。1<=n<=10输出格式输出所有的方案,注意输出要按字典序。即按如下次序a1a1+a2a1+a2+a3a1+a2+a3......a2a2+a3a2+a3+............an输入样例
2022-04-10 16:00:35 692
原创 19071 递归实现指数型枚举
Description递归实现指数型枚举是一种常用的DFS算法,复杂度是2^n,只能在n比较小的时候使用。一般用于:从 1∼n 这 n 个整数中随机选取(或者有某些规则限制)任意多个,输出所有可能的选择方案。其实背包问题也可以用这种方法解决,只是复杂度会比较高......一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,...,Wn,旅行者最多能装多少重量。本题目题面:给你N个整数,从中选取任意多个(至少选择一个),输出所有可能的选择方案,无需输
2022-04-10 09:31:57 640
原创 数据结构小测Josephus问题
描述编写算法解决Josephus问题:设有n个人围在一个圆桌周围,现从第s个人开始报数,数到第m个人又出列…如此反复直到所有的人全部出列为只止。Josephus问题是:对于任意给定的n,s和m,求出按出列次序得到的n个人员的序列。输入格式输入表示n,s,m的三个值,用空格分隔输出格式输出出列序列输入样例8 3 4输出样例6 2 7 4 3 5 1 8思路这到题用的是循环链表的知识,可以通过设链表来实现。但是因为我们知道
2022-04-05 22:08:24 1760
原创 18769 不完整的排序
Description一个数组只包含正负整数,请使用一个O(n)级别的算法对其进行排序。只需将负数全部放前面,正数全部放后面即可,无需进行严格排序。此题目必须使用双指针法才能通过,双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。具体算法如下:定义两个指针:i=1,j=n(1)i指针从左至右遍历,当碰到不满足条件的元素(正数),我们暂停i 移动(2)j指针从右至左遍历,当碰到不满足条件的元素(负数),
2022-04-05 13:44:06 427
原创 8576 顺序线性表的基本操作
Description编写算法,创建初始化容量为LIST_INIT_SIZE的顺序表T,并实现插入、删除、遍历操作。本题目给出部分代码,请补全内容。#include<stdio.h>#include<malloc.h>#define OK 1 #define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ElemType inttypedef struct{ .
2022-04-01 22:43:14 151
原创 18063 圈中的游戏
Description有n个人围成一圈,从第1个人开始报数1、2、3,每报到3的人退出圈子。编程使用链表找出最后留下的人。输入格式输入一个数n,1000000>=n>0 输出格式输出最后留下的人的编号输入样例3输出样例2典型的链表问题1.首先创建一个结构体结构体中有变量:每一个人对应的编号以及指针typedef struct node{ int id; struct ..
2022-03-27 23:12:29 3672
原创 18770 差值最大
Description一个长度为N的整数序列,找出两个数x和y使x-y的值最大。要求在序列中x必须在y的右侧。输入格式第一行是一个正整数N,表示了序列的长度(0<=N<=200000)。第二行包含N个绝对值不大于10000的整数ai。输出格式一个整数,为最大的差值。数据确保结果在类型int范围内。输入样例74 -4 3 -1 2 -4 3输出样例7思路求最大差值,那么先设y=0;接着输入..
2022-03-27 22:58:40 173
原创 18708 最大子段和
Description一个整数序列,选出其中连续且非空的一段使得这段和最大。注意当题目要求输入输出的数据量很大时,尽量使用scanf和printf。 c++提供的cin和cout速度比较慢,有可能在读取数据和输出数据时导致超时。输入格式第一行是一个正整数N,表示了序列的长度(0=<N<=200000)。第二行包含N个绝对值不大于10000的整数ai。输出格式一个整数,为最大的子段和。子段的最小长度为1。数据确保结果在类型int范围内。...
2022-03-27 22:45:39 1221
原创 18709 魔法
Description农夫约翰的奶牛场有很多奶牛,奶牛有黑白两种颜色。现在奶牛们排成整齐的一列去参加镇上的游行活动。约翰希望白色奶牛都排在前面,黑色的奶牛都排在后面。但现在队列中奶牛的颜色是混乱的,并且奶牛们都不愿意改变位置。幸运的是,约翰有一根魔法棒,每挥舞一次魔法棒就可以改变一头奶牛的颜色。请问,约翰至少要挥舞多少次魔法棒,才能将队列改成他希望的状态。注意,可以将所有的奶牛都变成白色,或者都变成黑色。输入格式第一行一个正整数n,表示奶牛的头数。(1<=n<=20
2022-03-27 22:32:44 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人