草庐IT

leetcode题解

全部标签

【LeetCode】240.搜索二维矩阵Ⅱ

题目编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=20输出:fals

LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《LeetCode952三部曲》系列之二,在前文中,咱们详细分析了解题思路,然后按照思路写出了代码,在LeetCode提交成功,成绩如下图所示,137ms,超过39%不得不说这个成绩很不理想,于是今天咱们来尝试进行优化,以减低时间,提升百分比优化点预判回顾一下题目要求,如下所示上图中有个重要条件:入参数组中,最大值不超过100000回顾咱们在初始化并查集数据结构的时候,需要满足数组下标代表数字身份这个特性,例如fathers[100000]

Leetcode: 1. 两数之和 【题解超详细】

前言有人夜里挑灯看花,有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。希望下面的题解可以帮助你们开始 你们的leetcode刷题的天降之路 题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。难度:简单题目链接:1.两数之和示例1:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。示例2:输

[ABC318D] General Weighted Max Matching 题解

[ABC318D]GeneralWeightedMaxMatching题解题意  给定无向有权完全图,求最大权匹配。思路分析  注意到\(n\le16\),我考虑状压DP。  设当前点集\(S\)中最大权匹配的答案是\(f_S\),我们考虑\(S\)中“最后”一个点\(p\)(这里的“最后”一个点是指,在状压表示状态的时候,最后一个1所代表的那个点,只需从这个点考虑就行,不需要考虑其他前面的点,因为会被更小状态考虑过)。  我们可以从前面其他点中,选择一个点\(q\)和这个点匹配,也可以不匹配这个点。于是有转移方程:\[f_S=\max(f_{S-p},f_{S-p-q}),p\inS,q\i

《LeetCode零基础指南》(第一讲) 函数

文章目录零、了解网站1、输入输出2、刷题步骤3、尝试编码4、调试提交一、概念定义1、函数简介2、函数的基本概念3、函数的基本结构4、返回类型5、函数名6、参数列表7、函数体8、返回值二、题目分析1、整数乘法2、整数除法3、次幂函数4、开方函数5、最值函数三、推荐学习四、课后习题零、了解网站1、输入输出  对于算法而言,就是给定一些输入,得到一些输出,在一般的在线评测系统中,我们需要自己手写输入输出函数(例如C语言中的scanf和printf),而在LeetCode这个平台,只需要实现它提供的函数即可。函数的传入参数就代表了的算法的输入,而函数的返回值则代表了的算法的输出。2、刷题步骤  找到一

[ABC318C] Blue Spring 题解

[ABC318C]BlueSpring题解题意简述  主人公出去旅游要买票,共有若干天,每天要花不同钱。现在有“通行证”出售,通过购买通行证,可以在某一天直接用通行证,以此来省去当天原本需要花费的票价。通行证只能一套一套买,每套中有\(D\)个,买一套要花费\(P\)元。可以购买任意套数的通行证,求怎样最省钱。解题思路  首先发现天和天之间独立,可以排序,排序不影响买票总价的性质。于是我们将原序列从小到大排序,方便处理。  我们将一套通行证中,每张通行证的平均单价计算出来,即\(\frac{P}{D}\)(注意可能不是整数),然后我们发现,假如说一套中只有一张通行证,那么显然,只要某天票价高于

2020 CSP - J初赛 题解

目录写在前面的话题面题解答案合集单项选择题123456789101112131415阅读程序题一161718192021二222324252627三282930313233完善程序题一3435363738二3940414243尾声写在前面的话快要CSP了,最近疯狂刷题中…终于抽出时间乘爸妈不在写了一篇题解题面如需做题,请到以下网站自行练习。本博客只提供讲解。洛谷有题初赛真题-信奥赛题库题解答案合集题号1~5:AADCC6~10:BAAAA11~15:ADCAA16~20:对错对错A21~25:D错错对D26~30:BD错对错31~35:BCCCC36~40:CACBD41~43:AAB😛😛单项

(搜索) 剑指 Offer 13. 机器人的运动范围 ——【Leetcode每日一题】

❓剑指Offer13.机器人的运动范围难度:中等地上有一个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💡思路:广度优先搜索我们将行坐标和列坐标数位之和大于k的格子看作障碍物

leetcode 567. 字符串的排列(滑动窗口-java)

滑动窗口字符串的排列滑动窗口代码演示进阶优化版上期经典字符串的排列难度-中等leetcode567.字符串的排列给你两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。如果是,返回true;否则,返回false。换句话说,s1的排列之一是s2的子串。示例1:输入:s1=“ab”s2=“eidbaooo”输出:true解释:s2包含s1的排列之一(“ba”).示例2:输入:s1=“ab”s2=“eidboaoo”输出:false提示:1s1和s2仅包含小写字母滑动窗口这种题目,是明显的滑动窗口算法,相当给你一个S和一个T,请问你S中是否存在一个子串,包含T中所有字符且不包含其他字符。题

Leetcode刷题笔记——二分法

二分法是搜索算法中极其典型的方法,其要求输入序列有序并可随机访问。算法思想为输入:有序数组nums,目的数值target要求输出:如果target存在在数组中,则输出其index,否则输出-1将原数组通过[left,right]两个索引划分范围,初值left=0,right=数组的最后一个元素当leftmiddle=(left+right)/2判断nums[middle]是不是要查找的target,如果是则返回结果判断nums[middle]>target,证明要查找的target在左边,因此right=middle-1判断nums[middle]没有查找到return-1。形如下图:传统的二