![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#基础
文章平均质量分 52
福尔财斯.包子蔡
这个作者很懒,什么都没留下…
展开
-
20220123剑指offer刷题
剑指 Offer II 014. 字符串中的变位词题目描述:给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。换句话说,第一个字符串的排列之一是第二个字符串的 子串 。我的想法是使用滑动窗口:先用一个字典存放s1中的字符和字符个数,然后用滑动窗口来检验s2中是否有s1的变式。代码如下:public class Solution { public bool CheckInclusion(string s1, string s2) {原创 2022-01-23 23:03:50 · 390 阅读 · 0 评论 -
20220122剑指offer刷题
剑指 Offer II 011. 0 和 1 个数相同的子数组题目描述:给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。首先,以后再遇到两个数字有相同数量的时候,可以将一个数字换成1,一个数组换成-1,这样通过相加就可以知道两个数字是否数量一致。这样问题就变成了:求最长的连续子数组,使其元素和为0.另外本题还涉及到一个数组常用的方法,就是前缀和字典。当有两个的前缀和相同时,说明这两者之间的数构成一个0和1数量相同的子数组。(注意:字典中只原创 2022-01-22 14:22:48 · 159 阅读 · 0 评论 -
20220118剑指offer刷题
剑指 Offer II 010. 和为 k 的子数组题目描述:给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。这题简单的解法就是遍历代码如下:public class Solution { public int SubarraySum(int[] nums, int k) { int index = 0; for(int left = 0;left<nums.Length;left++){原创 2022-01-21 17:31:12 · 326 阅读 · 0 评论 -
20220120剑指offer刷题(剑指 Offer II 009. 乘积小于 K 的子数组)
结果题目描述:给定一个正整数数组nums和整数k,请找出该数组内乘积小于k的连续的子数组的个数。原理如下:结果如下:可以看到时间上面没啥优势,空间复杂度还好原创 2022-01-21 11:41:00 · 206 阅读 · 0 评论 -
20220120剑指offer刷题(剑指 Offer II 008. 和大于等于 target 的最短子数组)
剑指 Offer II 008. 和大于等于 target 的最短子数组本题重点:滑动窗口设置头和尾两个指针,就可以设置出一个长度可变的窗口本题的原理:然后麻烦的就还是那些边边角角的循环条件,最终代码是:public class Solution { public int MinSubArrayLen(int target, int[] nums) { int left = 0,right = 0; int sum = 0; .原创 2022-01-20 18:31:20 · 172 阅读 · 0 评论 -
20220119剑指offer刷题(剑指 Offer II 007. 数组中和为 0 的三个数)
剑指 Offer II 007. 数组中和为 0 的三个数题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a ,b ,c ,使得 a + b + c = 0 ?请找出所有和为 0 且 不重复 的三元组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/1fGaJU著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。拿到无序数组,首先先将数组进行排序。排序的好处是可以使用有序数列..原创 2022-01-19 22:56:29 · 423 阅读 · 0 评论 -
20220115剑指offer刷题
剑指 Offer II 012. 左右两边子数组的和相等题目描述:给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。分析:左侧数的和和右侧数的和要一样,都等于总和的一半 代码如下:原创 2022-01-15 19:06:46 · 73 阅读 · 0 评论 -
剑指offer刷题Day7(C#)
剑指 Offer II 002. 二进制加法给定两个 01 字符串a和b,请计算它们的和,并以二进制字符串的形式输出。输入为非空字符串且只包含数字1和0。原创 2022-01-06 15:41:05 · 306 阅读 · 0 评论 -
深度优先搜索 VS. 广度优先搜索
(一)深度优先搜索深度优先搜索(Depth First Search),顾名思义就是在搜索树或图的时候优先考虑深度。下面这两个大大写的帖子就已经很清楚了:基本算法——深度优先搜索(DFS)和广度优先搜索(BFS) - 简书浅谈回溯与深度优先搜索_James_T_Kirk的博客-CSDN博客对于深度优先搜索,当某结点还有没有遍历到的左、右节点时,就遍历(优先左节点),即将遍历的子节点压入栈中;如果某节点的左右节点都已经遍历过了,那么就将该节点从栈中弹出这就有点像回溯了,事实上,它的确也原创 2021-12-02 11:34:23 · 210 阅读 · 0 评论 -
Leetcode刷题Day9(C#)
190. 颠倒二进制位题目描述:颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。来源:力扣(LeetCode)链接:https://.原创 2021-11-14 10:40:35 · 207 阅读 · 0 评论 -
Leetcode刷题Day7(C#)
70. 爬楼梯题目描述:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。解题:一开始没有看出规律,直到我列出了n分别为1~6的结果,我发现了规律:n=1,有1种;n=2,有2种;n=3,有3种;n=4,有5种;n=5,有8种;n=6,有13种于是我发现了规律,这是一个斐波那契数列,不要问为啥爬个楼梯还要斐波那契数列,问就是题目这么出的。当然这是暴力地发现规律的方法,其实正确的思路是:最后一...原创 2021-11-13 10:50:00 · 140 阅读 · 0 评论 -
C#基础——Hashset类
HashSet基础概念HashSet 是System.Collections.Generic命名空间下的HashSet<T>类,是一个高性能且无序的集合。因为HashSet是无序的,所以它既不能做排序操作,又不能像数组那样索引。在 HashSet 上只能使用foreach来进行迭代,而无法使用for循环。HashSet中的元素不重复(可以存放单一的null),即具有元素唯一性,若向 HashSet 中插入重复元素,其内部会忽视此次操作,不会报出异常。因此若想拥有一个具有唯一值...原创 2021-10-31 19:56:25 · 5314 阅读 · 1 评论