草庐IT

leetcode题解

全部标签

Leetcode-每日一题【剑指 Offer 13. 机器人的运动范围】

题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0,0]的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格[35,37],因为3+5+3+7=18。但它不能进入方格[35,38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例1:输入:m=2,n=3,k=1输出:3示例2:输入:m=3,n=1,k=0输出:1提示:10解题思路1.题目要求我们求出机器人能够到达多少个格子,对于这道题我们依旧采用深度优先搜索来解决。2.首先

LeetCode 138.复制带随机指针的链表

文章目录💡题目分析💡解题思路🚩步骤一:拷贝节点插入到原节点的后面🍩步骤一代码🚩步骤二:控制拷贝节点的random进行连接🍩步骤二代码🚩步骤三:拷贝节点解下来尾插组成拷贝链表,恢复原链表🍩步骤三代码🔔接口源码题目链接👉LeetCode138.复制带随机指针的链表👈💡题目分析给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链

Leetcode:238. 除自身以外数组的乘积【题解超详细】

纯C语言实现(小白也能看明白)题目给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32位 整数范围内。请不要使用除法,且在 O(n) 时间复杂度内完成此题。难度:中等题目链接:238.除自身以外数组的乘积解题思路 由于该题不能使用除法所以参考题解写一个左右乘积列表的方法创建两个新的数组a,b一个用于记录从左到右的乘积(类似于动态规划的思想)a另一个记录从右到左的乘积b(注意b是从右到左进行累乘)而a的最左端为1,b的最右端为

CCF-CSP真题《202305-3 解压缩》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全试题编号:202305-3试题名称:解压缩时间限制:5.0s内存限制:512.0MB问题描述:题目背景西西艾弗岛运营公司是一家负责维护和运营岛上基础设施的大型企业。在公司内,有许多分管不同业务的部门都需要使用到服务器设施。为了便于管理,同时降低公司运行成本,西西艾弗岛运营公司建设了一套私有云系统。这套私有云系统除了能提供托管的虚拟机服务外,还能提供一些其他的服务。其中,最受好评的当属日志服务。此前,各个业务系统的日志都是分散存放在各自的服务器上的,这样不仅不方便查看和分析而且也有丢失的风险。而日志服务则能够将各个业务系统的

【LeetCode每日一题】——1572.矩阵对角线元素的和

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】一【题目类别】矩阵二【题目难度】简单三【题目编号】1572.矩阵对角线元素的和四【题目描述】给你一个正方形矩阵mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。五【题目示例】示例1:输入:mat=[[1,2,3],                     [4,5,6],                     [7,8,9]]输出:25解释:对角线的和为:1+5+9+3+7=25。请注意,元素

【LeetCode】模拟实现FILE以及认识缓冲区

模拟实现FILE以及认识缓冲区刷新缓冲逻辑图自定义实现如何强制刷新内核缓冲区例子刷新缓冲逻辑图自定义实现mystdio.h#pragmaonce#include#defineNUM1024#defineBUFF_NOME0x1#defineBUFF_LINE0x2#defineBUFF_ALL0x4typedefstruct_MY_FILE{intfd;//接受描述符的值intflags;//用来记录打开方式charoutputbuffer[NUM];//缓冲区保存intcurrent;//记录缓冲区有多少字符}MY_FILE;MY_FILE*my_fopen(constchar*path,c

UVA908[Re-connecting Computer Sites]题解

原题1.题意分析题意就是给你很多组数,对于每组数,有三组小数据。第一组小数据先输入一个n表示顶点数,然后再输入n-1条边表示初始边数。其它组小数据先输入一个数k,表示增加的边的数量,然后再输入k条边,表示增加的边。在输入第二组小数据时,要先把边清空,重新输入,但是边的数量不变。2.做法题意不难理解,说白了就是最小生成树的板子题。很明显,对于每组数,可以分为两组大数据。第一组小数据是一组大数据;第二组和第三组小数据可以分为一组大数据。对于每组大数据,求出最小生成树,再把数据清空,再求一遍。就是最终的正解了3.关于最小生成树板子板子题原题kruskal最小生成树算法的详细分析注意输入的换行,换行卡

C语言好题解析(二)

目录递归类型例题1例题2例题3例题4例题5例题6递归类型例题1根据下面递归函数:调用函数Fun(2),返回值是多少()intFun(intn){ if(n==5) return2; else return2*Fun(n+1);}A.2B.4C.8D.16【答案】D【分析】1:递归解题思路就是要注意递归的限制条件,满足限制条件时递归就不再继续,且每次递归调用之后都会接近这个限制条件2:由题目我们可以知道限制条件为n==5,当我们输入比5小的数时,n是以每次增加1的趋势接近限制条件流程如下(第一次用画图软件,画的不是很好看)例题2通过用递归的方式实现求第n个斐波那契数例如输入:5输出:5输入:

LeetCode——有效的括号

这里,我提供一种用栈来解决的方法:思路:栈的结构是先进后出,这样我们就可以模拟栈结构了,如果是‘(’、‘{’、‘[’任何一种,直接push进栈就可以了,如果是‘}’、‘)’、‘]’任何一种就开始判断,看栈pop的是否和对应的字符匹配。   下面是源码:typedefcharSTDateType;typedefstructStack{ STDateType*a; inttop; intcapacity;}Stack;voidStackInit(Stack*ps);voidStackPush(Stack*ps,STDateTypex);voidStackPop(Stack*ps);STDateTy

int[]数组转Integer[]、List、Map「结合leetcode:第414题 第三大的数、第169题 多数元素 介绍」

文章目录1、int[]转Integer[]:2、两道leetcode题遇到的场景:2.1、int[]转List:2.2、int[]转Map:1、int[]转Integer[]:publicstaticvoidmain(String[]args){int[]nums={1,2,3};Integer[]array=Arrays.stream(nums).boxed().toArray(Integer[]::new);System.out.println(Arrays.toString(array));}输出://[1,2,3]2、两道leetcode题遇到的场景:众所周知,将普通数组转为List集