779 次浏览
LongestIncreaingSubsequence 返回数组中连续子序列的整数。该方法有一个 for 循环,它进行迭代并跟踪数字。最终结果将包含计算出的 Max。时间复杂度为 O(N),因为每个元素都访问一次,空间复杂度为 O(1),因为我们没有使用任何存储空间。时间复杂度 - O(N)空间复杂度 - O(1)示例 - {2, 4, 6, 5, 8}输出 - 3示例public class Arrays{ public int longestIncreaingSubsequence(int[] nums){ if (nums == null || nums.Length == 0){ return -1; ... 阅读更多
1K+ 次浏览
从给定的字符串输入中,使用滑动窗口技术,使用两个指针 i 和 j。i 和 j 都将指向字符串中的同一个字符。遍历字符串并将其添加到列表中。如果找到重复的字符,则将其从列表中删除,否则将其追加到列表中。示例 1输入 - s = "abcabcbb"输出 - 3解释 - 答案是“abc”,长度为 3。示例 2输入 - s = "bbbbb"输出 - 1解释 - 答案是“b”,长度为 1。时间复杂度 - O(N)空间复杂度 - O(N)示例public class Arrays{ public int LongestSubstringWithNoRepeatingCharacters(string s){ ... 阅读更多
809 次浏览
两个字符串 X 和 Y,如果 X 中每个字符的所有出现都可以替换为另一个字符以获得 Y,反之亦然,则称为同构。例如,考虑字符串 ACAB 和 XCXY。所有字符的出现必须替换为另一个字符,同时保留字符的顺序。没有两个字符可以映射到同一个字符,但一个字符可以映射到自身。示例 1输入 - s = "egg",t = "add"输出 - true示例 2输入 - s = "foo",t = "bar"输出 - false时间复杂度 - O(N)空间复杂度 - O(N)代码public class Arrays{ public bool IsStringIsomorphic(string s, string t){ ... 阅读更多
612 次浏览
创建一个 MoveZeros 方法,遍历数组并计算数组中零的数量。根据计数大小将所有最终单元格设为零。如果数组长度为 null 或为空,则返回而无需处理。最终结果将位于 nums 数组中。时间复杂度为 O(N),因为我们遍历数组一次。时间复杂度 - O(N)空间复杂度 - O(1)示例public class Arrays{ public void MoveZeros(int[] nums){ if (nums == null || nums.Length == 0){ return; } int count = 0; ... 阅读更多
105 次浏览
帕斯卡三角形是一种呈三角形形状的数字模式。帕斯卡三角形在数学和统计学中有很多应用,包括它能够帮助您计算组合。三角形中的每个数字都是其上方两个数字的和。例如,第 4 行 - 它是其上方一行中 3 和 3 的和。任何一行中的第一个和最后一个数字始终为 1。时间复杂度 - O(N)空间复杂度 - O(N)示例public class Arrays{ public List GeneratePascal(int n){ List res = new List(); if (n
99 次浏览
双指针模式,类似于四元组和为零。我们可以遵循类似的方法来迭代数组,每次取一个数字。在每一步,我们将保存四元组与目标数字之间的差异,并且在每一步,我们将将其与迄今为止的最小目标差异进行比较,以便最终,我们可以返回具有最接近和的四元组。时间复杂度对数组进行排序将花费 O(N* logN)。总体 fourSumClosest() 将花费 O(N * logN + N^3),这在渐近上等效于 O(N^3)。空间复杂度上述方法的空间复杂度为 O(logN),用于排序。 ... 阅读更多
185 次浏览
简单的方法是我们创建四个嵌套循环并逐一检查所有四个元素的和是否为零。如果四个元素的和为零,则打印元素。时间复杂度 - O(n4)空间复杂度 - O(1)我们可以使用无序集合数据结构来存储数组的每个值。集合提供了在 O(1) 时间内搜索元素的优势。因此,对于数组中的每一对,我们将寻找其和的负数,该负数可能存在于集合中。如果找到这样的元素,则 ... 阅读更多
170 次浏览
双指针模式,类似于三元组和为零。我们可以遵循类似的方法来迭代数组,每次取一个数字。在每一步,我们将保存三元组与目标数字之间的差异,并且在每一步,我们将将其与迄今为止的最小目标差异进行比较,以便最终,我们可以返回具有最接近和的三元组。时间复杂度对数组进行排序将花费 O(N* logN)。总体 threeSumClosest() 将花费 O(N * logN + N^2),这在渐近上等效于 O(N^2)。空间复杂度上述方法的空间复杂度为 O(logN),用于排序。 ... 阅读更多
199 次浏览
创建 2 个不同的数组 leftDis 和 rightDis。leftDis 将在从左方向移动时存储值。rightDis 将在从右移动时存储最短值。每当遇到字符时,将字符的位置添加到数组中。在最后一步计算两个数组的最大值。时间复杂度 - O(n)空间复杂度 - O(n)示例public class Arrays{ public int[] LongestDistanceToCharacter(string s, char c){ int stringLength = s.Length; int[] leftDis = new int[s.Length]; int[] rightDis = new int[s.Length]; leftDis = Enumerable.Range(0, s.Length).Select(n => ... 阅读更多
322 次浏览
创建 2 个不同的数组 leftDis 和 rightDis。leftDis 将在从左方向移动时存储值。rightDis 将在从右移动时存储最短值。每当遇到字符时,将字符的位置添加到数组中。在最后一步计算两个数组的最小值。时间复杂度 - O(n)空间复杂度 - O(n)示例public class Arrays{ public int[] ShortestDistanceToCharacter(string s, char c){ int stringLength = s.Length; int[] leftDis = new int[s.Length]; int[] rightDis = new int[s.Length]; leftDis = Enumerable.Range(0, s.Length).Select(n => ... 阅读更多