草庐IT

LeetCode_day

全部标签

LeetCode952三部曲之三:再次优化(122ms -> 96ms,超51% -> 超91%)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《LeetCode952三部曲之三》的终篇,先回顾一下前文的成果,看看我们之前已经优化到什么程度:前文的优化思路是减小并查集数组的规模,带来的结果是节省内存、减少数组相关的执行次数,但从代码上分析,并查集数组处理所占比重并不多,所以造成此处整体优化效果一般所以,除了并查集,还要去寻找其他优化点,这就是本篇的主要内容优化思路寻找优化点的方向很明确:重点关注时间复杂度高的代码块按照上述思路,很容易就找到了下图中的代码段,位于程序入口位置,计算每

LeetCode刷题(ACM模式)-01数组

参考引用:代码随想录注:每道LeetCode题目都使用ACM代码模式,可直接在本地运行,蓝色字体为题目超链接0.数组理论基础数组(array)是存放在连续内存空间上的相同类型数据的集合,是一种复合数据类型,它是有序数据的集合,在存储空间中也是按顺序存储。数组中的每个元素具有相同的数据类型,可以方便的通过下标索引的方式访问到对应的数据。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。举一个字符数组的例子,如图所示数组下标都是从0开始的数组内存空间的地址是连续的数值数组元素的默认值为0,而引用元素的默认值为null数组元素可以是任何类型,包括数组类型正是因为数组的在内存空间的地址是连续

顺序表链表OJ题(1)——【LeetCode】

W...Y的主页 😊代码仓库分享 💕 前言:今天我们来回顾一下顺序表与链表,针对这一块我们也有许多OJ题目供大家参考。当我们学习完顺序表链表后避免不了一些习题的练习,这样才能巩固我们学习的内容。话不多说,我们开始进入OJ习题训练!!!【leetcode27.移除元素】 OJ链接给你一个数组 和一个值,你需要原地移除所有数值等于 的元素,并返回移除后数组的新长度。numsvalval不要使用额外的数组空间,你必须仅使用额外空间并原地修改输入数组。O(1)元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传

LeetCode——栈的压入、弹出序列

这里我用下面的例子子来讲解一下模拟栈的实现。例子1:pushed=[1,2,3,4,5]popped=[4,5,3,2,1]思路:第一步:我们先创建一个栈,然后将pushed的数据压进去第二步:判断!当压入栈的数据和popped第一个数据一样的时候,我们就出数据。ps:这时可以用一个posi来记录要比较的数据第三步:最后判断栈是否为空,为空就true,否则则false下面是源码:classSolution{public:boolvalidateStackSequences(vectorint>&pushed,vectorint>&popped){stackint>st;intposi=0;fo

微信小程序DAY4

文章目录一、自定义组件1-1、组件的创建1-2、局部引用组件1-3、全局引用组件1-4、properties1-5、数据监听器1-5、组件的生命周期1-6、组件主要的生命周期函数1-7、组件插槽二、父子组件之间的通信2-1、父子组件之间的通信的三种方式三、分包3-1、分包的好处3-2、分包的好处3-3、使用分包四、独立分包4-1、独立分包和普通分包的区别4-2、独立分包的应用场景4-3、独立分包的使用五、分包预下载一、自定义组件1-1、组件的创建根目录下创建一个文件夹components该目录下的组件都是一个文件夹1-2、局部引用组件//在页面的.json文件中,引入组件{"usingComp

LeetCode_03Java_1572. 矩阵对角线元素的和

给你一个正方形矩阵mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。输入:mat=[[1,2,3],[4,5,6],[7,8,9]]输出:25解释:对角线的和为:1+5+9+3+7=25请注意,元素mat[1][1]=5只会被计算一次。示例二输入:mat=[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]]输出:8示例三输入:mat=[[5]]输出:5代码实现publicclassDiagonalSum{publicstaticintdiagonalSum(int[][]mat){intsum=0;intlen

每天一道leetcode:1466. 重新规划路线(图论&中等&广度优先遍历)

今日份题目:n座城市,从0到n-1编号,其间共有n-1条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。路线用connections表示,其中connections[i]=[a,b]表示从城市a到b的一条有向路线。今年,城市0将会举办一场大型比赛,很多游客都想前往城市0。请你帮助重新规划路线方向,使每个城市都可以访问城市0。返回需要变更方向的最小路线数。题目数据保证每个城市在重新规划路线方向后都能到达城市0。示例1输入:n=6,connections=[[0,1],[1,3],[2,3],[4,0],[

【100天精通python】Day36:GUI界面编程_Tkinter高级功能操作和示例

目录 专栏导读 一、GUI高级功能1自定义主题和样式2实现拖放功能 3多线程和异步编程二、实战项目1.待办事项应用2.图像查看器3.文本编辑器4添加动画和过渡效果 5多界面和多线程示例   专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html一、GUI高级功能1自定义主题和样式        自定义主题和样式可以让你的GUI应用程序在外观方面更加出色。在使用Tkinter时,你可以使用ttkthemes库来应用不同的主题和样式。pipinstallttkthemes接下来,尝试以下示例代码,以便应用不同的主题和

【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]