找到 2628 篇文章 关于 C#

如何使用 C# 反转给定字符串的单词顺序,而不是字母顺序?

Nizamuddin Siddiqui
更新于 2021年8月27日 12:36:03

204 次浏览

创建一个名为 reverseWords 的方法,该方法接收字符数组作为输入,并对每个字符进行反转,直到遇到空格为止。在最后一步,反转整个字符串,长度从 0 到 n-1。第一步,“This is my book” 将变成 “koob ym si siht”。在第二步结束时,字符串单词将反转为“book my is This”时间复杂度 - O(N)示例 实时演示使用 System; 命名空间 ConsoleApplication{   公共类 Arrays{      静态无效反转(char[] str, int start, int end){ ... 阅读更多

如何使用 C# 从已排序的数组中删除重复项并返回非重复数组?

Nizamuddin Siddiqui
更新于 2021年8月27日 12:31:54

1K+ 次浏览

数组已排序,我们可以保留两个指针 i 和 j,其中 i 是慢速指针,而 j 是快速指针。只要 nums[i] = nums[j]nums[i]=nums[j],我们就递增 j 以跳过重复项。当我们遇到 nums[j] != nums[i] 时,重复运行已结束,因此我们必须将其值复制到 nums[i + 1]nums[i+1]。然后递增 i,我们再次重复相同的过程,直到 j 到达数组的末尾。创建一个新数组,将所有元素从过滤后的数组复制到索引处,然后返回新数组。时间复杂度 - O(N)示例 实时演示使用 System; 命名空间 ConsoleApplication{ ... 阅读更多

如何使用 C# 从已排序的数组中删除重复项并返回长度?

Nizamuddin Siddiqui
更新于 2021年8月27日 12:27:29

190 次浏览

数组已排序,我们可以保留两个指针 i 和 j,其中 i 是慢速指针,而 j 是快速指针。只要 nums[i] = nums[j]nums[i]=nums[j],我们就递增 j 以跳过重复项。当我们遇到 nums[j] != nums[i] 时,重复运行已结束,因此我们必须将其值复制到 nums[i + 1]nums[i+1]。然后递增 i,我们再次重复相同的过程,直到 j 到达数组的末尾。时间复杂度 - O(N)示例 实时演示使用 System; 命名空间 ConsoleApplication{   公共类 Arrays{      公共 int RemoveDuplicatesFromSortedArrayAndReturnLength(int[] arr){         int index = 1; ... 阅读更多

如何使用 C# 将数组旋转 k 次?

Nizamuddin Siddiqui
更新于 2021年8月27日 12:22:28

937 次浏览

给定一个数组和数字 k,问题说明我们必须将数组旋转 k 次。如果给定的数字是 3,则必须将数组旋转 3 次。创建一个名为 reverse 的函数,该函数将数组、起始位置和结束位置作为参数。在第一步中,调用从 0 到数组长度的反转方法。在第二步中,调用从 0 到 k-1 的反转方法。在第三步中,调用从 k+1 到数组长度的反转方法。示例 实时演示使用 System; 命名空间 ConsoleApplication{   公共类 Arrays{      公共无效 ReverseArrayKTimes(int[] arr, int k){         Reverse(arr, ... 阅读更多

如何在不使用任何额外空间的情况下使用 C# 对数组中的 0、1 进行排序?

Nizamuddin Siddiqui
更新于 2021年8月27日 12:24:44

357 次浏览

使用两个指针 low 和 high。我们将 low 指针放在开头,high 指针将指向给定数组的末尾。如果 array[low] = 0,则不需要交换。如果 array[low] = 1,则需要交换。high 指针递减一次。时间复杂度 - O(N)示例 实时演示使用 System; 命名空间 ConsoleApplication{   公共类 Arrays{      公共无效 SwapZerosOnes(int[] arr){         int low = 0;         int high = arr.Length - 1;         while (low < high){           if (arr[low] == 1){            ... 阅读更多

如何在不使用额外空间的情况下使用 C# 对数组中的 0、1、2 进行排序(荷兰国旗问题)?

Nizamuddin Siddiqui
更新于 2021年8月27日 12:25:16

185 次浏览

我们需要使用三个指针 low、mid 和 high。我们将 low 和 mid 指针放在开头,high 指针将指向给定数组的末尾。如果 array[mid] = 0,则交换 array[mid] 和 array[low],并将两个指针都递增一次。如果 array[mid] = 1,则不需要交换。mid 指针递增一次。如果 array[mid] = 2,则我们将 array[mid] 与 array[high] 交换,并将 high 指针递减一次。时间复杂度 - O(N)示例 实时演示使用 System; 命名空间 ConsoleApplication{   公共类 Arrays{      私有无效 Swap(int[] arr, int pos1, int pos2){    ... 阅读更多

如何使用 C# 检查二叉树是否具有给定的路径和?

Nizamuddin Siddiqui
更新于 2021年8月17日 08:46:21

274 次浏览

HasPathsum 接收两个参数,一个是树节点,另一个是和值,我们首先检查节点是否为空,如果节点为空,则返回 false。如果节点不为空,则我们调用 HasPathSum 递归方法,在每个递归步骤中,我们从节点值中减去和值。如果和的值达到 0,则我们得出结论,给定的树具有等于和的路径,并返回 true。示例公共类 TreesPgm{   公共类 Node{    ... 阅读更多

如何使用递归在 C# 中检查二叉树是否是有效的二叉搜索树?

Nizamuddin Siddiqui
更新于 2021年8月17日 08:42:20

344 次浏览

如果一棵树的所有左子节点都小于节点元素,而所有右子节点都大于节点元素,则该树是二叉搜索树。首先,我们检查节点是否有任何值,如果节点为空,则我们将其视为有效的二叉搜索树并返回 true。检查节点为空的结果后,我们通过传递节点、最小值和最大值来调用递归方法 isValidBST。如果根值小于最小值且根值大于最大值,则我们将其视为非二叉搜索树并 ... 阅读更多

如何使用 C# 中的递归反转二叉搜索树?

Nizamuddin Siddiqui
更新于 2021年8月17日 08:39:48

1K+ 次浏览

要反转二叉搜索树,我们调用一个名为 InvertABinarySearchTree 的方法,该方法接收节点作为参数。如果节点为空,则返回 null;如果节点不为空,则我们通过传递左子节点和右子节点的值来递归调用 InvertABinarySearchTree。并将右子节点的值赋给左子节点,左子节点的值赋给右子节点。最终输出将包含树的镜像图像。示例公共类 TreesPgm{   公共类 Node{      公共 int Value;      公共 Node LeftChild;      公共 Node ... 阅读更多

如何使用 C# 中的递归检查树是否对称?

Nizamuddin Siddiqui
更新于 2021年8月17日 08:37:33

157 次浏览

在递归方法中,要查找树是否对称,我们首先检查树是否为空,如果树为空,则它是对称的;如果树不为空,则我们调用方法 issymmetricmirror 。在 isSymmetricMirror 中,我们获取左子节点和右子节点的值,如果左子节点和右子节点都为空,则我们认为它是对称的;如果其中一个值为 null,则我们认为它不是对称的;最后,我们通过传递左子节点和右子节点的值来递归调用 issymmetric 方法。示例公共类 TreesPgm{    ... 阅读更多

广告