找到 2628 篇文章 关于 C#

如何使用 C# 将所有零移动到给定整数数组的末尾?

Nizamuddin Siddiqui
更新于 2021年8月17日 08:00:57

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; ... 阅读更多

如何使用 C# 为给定数字生成帕斯卡三角形?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:57:48

105 次浏览

帕斯卡三角形是一种呈三角形的数字模式。帕斯卡三角形在数学和统计学中有很多应用,包括它可以帮助你计算组合。三角形中的每个数字都是它上面两个数字的和。例如,第 4 行 - 它是上面一行中 3 和 3 的和。任何一行中的第一个和最后一个数字总是 1。时间复杂度 - O(N) 空间复杂度 - O(N) 示例 public class Arrays{ public List GeneratePascal(int n){ List res = new List(); if (n

如何使用 C# 查找接近目标的四元组?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:51:43

99 次浏览

双指针模式,类似于四元组和为零。我们可以采用类似的方法来遍历数组,一次取一个数字。在每一步中,我们将保存四元组和目标数字之间的差值,并且在每一步中,我们将将其与到目前为止的最小目标差值进行比较,以便最终,我们可以返回具有最接近和的三元组。时间复杂度对数组进行排序将花费 O(N * logN)。总的来说,fourSumClosest() 将花费 O(N * logN + N^3),这在渐近意义上等效于 O(N^3)。空间复杂度上述方法的空间复杂度为... 阅读更多

如何使用 C# 查找所有接近零的唯一四元组?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:38:42

185 次浏览

简单的方法是,我们可以创建四个嵌套循环,逐个检查所有四个元素的和是否为零。如果四个元素的和为零,则打印元素。时间复杂度 - O(n4) 空间复杂度 - O(1) 我们可以使用无序集合数据结构来存储数组的每个值。集合提供了在 O(1) 时间内搜索元素的好处。因此,对于数组中的每一对,我们将查找其和的负数,该负数可能存在于集合中。如果找到这样的元素,则... 阅读更多

如何使用 C# 查找接近给定目标的唯一三元组?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:29:39

170 次浏览

双指针模式,类似于三元组和为零。我们可以采用类似的方法来遍历数组,一次取一个数字。在每一步中,我们将保存三元组和目标数字之间的差值,并且在每一步中,我们将将其与到目前为止的最小目标差值进行比较,以便最终,我们可以返回具有最接近和的三元组。时间复杂度对数组进行排序将花费 O(N * logN)。总的来说,threeSumClosest() 将花费 O(N * logN + N^2),这在渐近意义上等效于 O(N^2)。空间复杂度上述方法的空间复杂度为... 阅读更多

如何使用 C# 查找给定字符串中字符的最长距离?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:16:51

199 次浏览

创建两个不同的数组 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 => ... 阅读更多

如何使用 C# 查找给定字符串中字符的最短距离?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:07:19

322 次浏览

创建两个不同的数组 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 => ... 阅读更多

如何使用 C# 查找所有加起来等于零的唯一三元组?

Nizamuddin Siddiqui
更新于 2021年8月17日 07:03:40

246 次浏览

简单的方法是,我们可以创建三个嵌套循环,逐个检查所有三个元素的和是否为零。如果三个元素的和为零,则打印元素。时间复杂度 - O(n3) 空间复杂度 - O(1) 我们可以使用无序集合数据结构来存储数组的每个值。集合提供了在 O(1) 时间内搜索元素的好处。因此,对于数组中的每一对,我们将查找其和的负数,该负数可能存在于集合中。如果找到这样的元素,则... 阅读更多

如何使用 C# 在按行递增的矩阵中搜索?

Nizamuddin Siddiqui
更新于 2021年8月17日 06:49:57

146 次浏览

这个问题的原始解决方案是扫描输入矩阵中存储的所有元素以搜索给定的键。如果矩阵的大小为 MxN,则此线性搜索方法的成本为 O(MN)。需要从右上角扫描矩阵,如果搜索元素大于右上角元素,则递增行,否则递减列。下面的代码段开发了一个 SearchRowwiseIncrementedMatrix 函数,该函数以二维数组和搜索键作为输入,并根据搜索键的成功或失败返回 true 或 false ... 阅读更多

如何使用 C# 在按行和按列递增的矩阵中搜索?

Nizamuddin Siddiqui
更新于 2021年8月17日 06:46:07

181 次浏览

解决这个问题的原始方法是扫描输入矩阵中存储的所有元素以搜索给定的键。如果矩阵的大小为 MxN,则这种线性搜索方法的成本为 O(MN)。矩阵可以被视为一个排序的一维数组。如果将输入矩阵中的所有行按从上到下的顺序连接起来,它就形成一个排序的一维数组。在这种情况下,二分查找算法适用于此二维数组。下面的代码片段开发了一个函数 SearchRowwiseColumnWiseMatrix,它将二维数组和搜索键作为输入,并返回真或假……阅读更多

广告