LeetCode Problems' Solutions
weycen / leetcode Goto Github PK
View Code? Open in Web Editor NEWLeetCode Problems' Solutions, In Pure C
LeetCode Problems' Solutions, In Pure C
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:88. 合并两个有序数组
TODO
TODO
思路
从两个数组左部开始扫描,每次取较小值,追加到已排序数组右部。
代码
TODO
思路
从两个数组右部开始扫描,每次取较大值,追加到已排序数组左部。
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:48. 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
官方题解-旋转图像
实现矩阵旋转的两种方法:自外向内 & 两次旋转
旋转图像 | 操作分解 | 超简洁易懂的代码 【c++/java详细题解】
思路
每一圈需交换边长减一轮,每轮交换4次像素,重点是找四次交换的像素坐标与圈数ring
、轮数i
、边长colsize
三个参数的关系;
代码
思路
TODO
题目名称:56. 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
思路
代码
qsort()函数可以对数组(数组元素可以是结构体,或仍是数组)进行快速排序,需输入数组元素比较大小的函数。
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:面试题 01.08. 零矩阵
编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。
思路
不能一边遍历一边清零行/列,会导致整个矩阵被清零。我们可以用两个标记数组分别记录矩阵中每一行和每一列是否有零出现。
具体地,我们首先遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true。最后我们再次遍历该数组,用标记数组更新原数组即可。
代码
思路
我们可以用矩阵的第一行和第一列代替方法一中的两个标记数组,以达到 O(1)O(1) 的额外空间。但这样会导致原数组的第一行和第一列被修改,无法记录它们是否原本包含 00。因此我们需要额外使用两个标记变量分别记录第一行和第一列是否原本包含 00。
在实际代码中,我们首先预处理出两个标记变量,接着使用其他行与列去处理第一行与第一列,然后反过来使用第一行与第一列去更新其他行与列,最后使用两个标记变量更新第一行与第一列即可。
思路
我们可以对方法二进一步优化,只使用一个标记变量记录第一列是否原本存在 00。这样,第一列的第一个元素即可以标记第一行是否出现 00。但为了防止每一列的第一个元素被提前更新,我们需要从最后一行开始,倒序地处理矩阵元素。
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:75. 颜色分类
TODO
TODO
思路
我们可以考虑对数组进行两次遍历。在第一次遍历中,我们将数组中所有的 00 交换到数组的头部。在第二次遍历中,我们将数组中所有的 11 交换到头部的 00 之后。此时,所有的 22 都出现在数组的尾部,这样我们就完成了排序。
代码
TODO
思路
使用两个指针索引P0和P1,初始均为0,从左至右扫描。
找到0将其与P0处值交换,P0++;如果P0<P1,再交换i和P1;
找到1将其与P1处值交换,P1++;
代码
TODO
思路
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
官方题解-最长公共前缀
14. 最长公共前缀
C语言,用第一个单词做参照,后面一个一个扫
C语言:简简单单的几行代码解决问题
思路
TODO
代码
TODO
TODO
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
题目名称:344. 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
思路
代码
LeetCode刷的第10道题!从今年2月份到现在,8个月了,真不容易,继续努力吧...
题目名称:TODO
TODO
TODO
思路
TODO
代码
TODO
TODO
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.