自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 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 429

原创 20220122剑指offer刷题

剑指 Offer II 011. 0 和 1 个数相同的子数组题目描述:给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。首先,以后再遇到两个数字有相同数量的时候,可以将一个数字换成1,一个数组换成-1,这样通过相加就可以知道两个数字是否数量一致。这样问题就变成了:求最长的连续子数组,使其元素和为0.另外本题还涉及到一个数组常用的方法,就是前缀和字典。当有两个的前缀和相同时,说明这两者之间的数构成一个0和1数量相同的子数组。(注意:字典中只

2022-01-22 14:22:48 185

原创 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 366

原创 20220120剑指offer刷题(剑指 Offer II 009. 乘积小于 K 的子数组)

结果题目描述:给定一个正整数数组nums和整数k,请找出该数组内乘积小于k的连续的子数组的个数。原理如下:结果如下:可以看到时间上面没啥优势,空间复杂度还好

2022-01-21 11:41:00 241

原创 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 179

原创 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 446

原创 剑指offer20220117

剑指 Offer II 018. 有效的回文题目描述:给定一个字符串s,验证s是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的回文串。public class Solution { public bool IsPalindrome(string s) { int left = 0 , right = s.Length-1; s = s.ToLower(); while(left&...

2022-01-18 10:10:03 260

原创 20220115剑指offer刷题

剑指 Offer II 012. 左右两边子数组的和相等题目描述:给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。分析:左侧数的和和右侧数的和要一样,都等于总和的一半 代码如下:

2022-01-15 19:06:46 82

原创 剑指offer刷题Day7(C#)

剑指 Offer II 002. 二进制加法给定两个 01 字符串a和b,请计算它们的和,并以二进制字符串的形式输出。输入为非空字符串且只包含数字1和0。

2022-01-06 15:41:05 315

原创 深度优先搜索 VS. 广度优先搜索

(一)深度优先搜索深度优先搜索(Depth First Search),顾名思义就是在搜索树或图的时候优先考虑深度。下面这两个大大写的帖子就已经很清楚了:基本算法——深度优先搜索(DFS)和广度优先搜索(BFS) - 简书浅谈回溯与深度优先搜索_James_T_Kirk的博客-CSDN博客对于深度优先搜索,当某结点还有没有遍历到的左、右节点时,就遍历(优先左节点),即将遍历的子节点压入栈中;如果某节点的左右节点都已经遍历过了,那么就将该节点从栈中弹出这就有点像回溯了,事实上,它的确也

2021-12-02 11:34:23 220

原创 Leetcode刷题——剑指Day5(C#)

剑指 Offer 32 - I. 从上到下打印二叉树题目描述:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]做这题之前,先补一点C#里面队列queue和列表list的知识Queue是队列,即“先进先出”的一个数据结构,数据从一端进入,从另外一端输出新建队列的方法:Queu...

2021-12-01 23:52:20 500

原创 Leetcode刷题——剑指Day4(C#)

剑指 Offer 50. 第一个只出现一次的字符题目描述:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。思路一:用字典。将字符串中的每个字符以及它们出现的次数都记录下来,然后输出第一个次数为1的数,没有的话就输出单空格ps:这里有一个小细节,在C#中双引号(“ ”)引出的是字符串string,单引号(‘ ’)引出的是字符char代码如下:public class Solution { public char FirstUniqCha

2021-12-01 22:14:58 274

原创 Leetcode刷题——剑指Day4(C#)

剑指 Offer 04. 二维数组中的查找题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原理:从右

2021-12-01 19:29:19 113

原创 Leetcode刷题——剑指Day3(C#)

剑指 Offer 03. 数组中重复的数字题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载

2021-11-24 13:25:33 108

原创 Leetcode刷题——剑指Day2(C#)

剑指 Offer 05. 替换空格题目描述:请实现一个函数,把字符串s中的每个空格替换成"%20"。空格只有一个字符,但是要替换的是“%20”,是三个字符,我最先想到的是用栈的方式,代码如下:public class Solution { public string ReplaceSpace(string s) { char[] SA = s.ToCharArray(); Stack<char> StackSA = new Stack&l..

2021-11-22 14:56:58 101

原创 剑指offer刷题Day1(C#)

剑指 Offer 09. 用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof著作权归领扣网络所有。商业转载请联系官方.

2021-11-22 10:46:45 188

原创 Leetcode刷题——剑指Day1(C#)

剑指 Offer 06. 从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。本来想得好复杂,还想着先用递归把链表倒过来再输出,却忽略了栈的妙处。栈,它是一个“后进先出”的结构。所以只遍历一遍,把链表的值压进栈中,再按顺序输出栈的内容就可以。代码如下:/** * Definition for singly-linked list. * public class ListNode { * public int val; *

2021-11-18 16:24:19 417

原创 Leetcode刷题(C#)递归学习1

对于两道简单的递归题的小总结206. 反转链表/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = n

2021-11-17 12:10:13 207

原创 Leetcode刷题Day12(C#)链表和递归

203. 移除链表元素题目描述:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。迭代写法:/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, Lis...

2021-11-17 11:57:17 423

原创 Leetcode刷题Day11(C#)

206. 反转链表题目描述:给你单链表的头节点head,请你反转链表,并返回反转后的链表。/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val;..

2021-11-16 23:30:27 131

原创 Leetcode刷题Day10(C#)

77. 组合题目描述:给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按任何顺序返回答案。思路一:根据起点画二叉树使用递归的思路:1)当搜索起点是1,在[2,3,4,....,n]中搜下一个数2)当搜索起点是2时,在[3,4,5,....,n] 中搜下一个数.........递归结构如下:对于回溯法,一个重要概念就是剪枝。剪枝就是剪掉那些明显不可能出现正确结果的情况。剪枝可以避免不必要的遍历,提高运行效率。例如下图中...

2021-11-14 20:02:27 151

原创 Leetcode刷题Day9(C#)

190. 颠倒二进制位题目描述:颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。来源:力扣(LeetCode)链接:https://.

2021-11-14 10:40:35 248

原创 Leetcode刷题Day8(C#)

231. 2 的幂题目描述:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得n == 2x ,则认为 n 是 2 的幂次方。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-two著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。这题倒是一开始就有思路,想的是一个递归的方法,代码如下:public clas.

2021-11-13 12:19:24 233 1

原创 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 155

原创 Leetcode刷题Day6(C#)

3. 无重复字符的最长子串题目描述:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。解题:567. 字符串的排列题目描述:给你两个字符串s1和s2 ,写一个函数来判断 s2 是否包含 s1的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation-in-string著作权归领...

2021-11-12 11:49:15 311

原创 Leetcode刷题记录Day5(C#)

876、链表的中间结点题目描述:给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。解题:链表一下子没有想法,于是看了一下评论,发现常用的一个方法是快慢指针于是去查了一下快慢指针的原理:快慢指针找中间值的原理,其实就跟跑步一样,设置快慢两个指针。最开始,slow与fast指针都指向链表第一个节点,然后slow每次移动一个指针,fast每次移动两个指针,这样当快指针遍历完链表以后,慢指针刚遍历到一半,从而返回中间结点。这也是...

2021-11-05 20:17:19 149

原创 Leetcode刷题记录Day4(C#)

344、反转字符串题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-string著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题:本题的解题思路比较简单,原理如下图所示:代码如下:publ

2021-11-04 12:23:29 129

原创 层次分析法python代码

之前上课小作业要让用层次分析法分析一个案例,因为计算繁琐,就整巴了一个python的代码,发上来记录一下:import numpy as npclass AHP: """ 相关信息的传入和准备 """ def __init__(self, array): ## 记录矩阵相关信息 self.array = array ## 记录矩阵大小 self.n = array.shape[0] # 初始化RI值,用于一致性检验 self.RI_l

2021-11-03 23:45:31 668

原创 Leetcode刷题Day3(C#)

283、移动零题目描述:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。解题:看到这题也需要用双指针来做,我果断地想到了设置left和right两个指针,原理也很简单:但是在代码编写的过程中,不停地有溢出的情况,我一怒之下,一步一检验,最终代码如下:public class Solution { public void MoveZeroes(int[] nums) { int left = 0; ...

2021-11-03 23:39:07 204 1

原创 Leetcode刷题Day2(C#)

977、有序数组的平方题目描述:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。解题:一开始我想得特别复杂,还想正数和负数分开讨论,后来一想,何必啊,它已经是个有序数列了,平方以后,最大值肯定是会两端的数,所以只需要在这个平方以后的数列的头和尾设置两个指针,对比取大就可以了。思路其实很简单,以某测试用例来表达思路过程:代码段如下:public class Solution { public int[] ...

2021-11-02 14:43:16 450 1

原创 Leetcode刷题Day1(C#)

704、二分查找题目描述:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-search著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题:二分法用于有序数列,思路就是每次都找中间量,通过比较大小来缩小范围,因为每次都缩小一半的...

2021-11-01 13:29:05 178

原创 C#基础——Hashset类

HashSet基础概念HashSet 是System.Collections.Generic命名空间下的HashSet<T>类,是一个高性能且无序的集合。因为HashSet是无序的,所以它既不能做排序操作,又不能像数组那样索引。在 HashSet 上只能使用foreach来进行迭代,而无法使用for循环。HashSet中的元素不重复(可以存放单一的null),即具有元素唯一性,若向 HashSet 中插入重复元素,其内部会忽视此次操作,不会报出异常。因此若想拥有一个具有唯一值...

2021-10-31 19:56:25 5405 1

原创 英语口语学习——洋话侃中国

中国总概:The ancient yellow river flows uninterrupted from west to east for thousands of years.Silk was made into clothes, while clay was made into pottery and ceramics.Millions of stones were piled into the great wall.The country created many wonde..

2021-10-31 18:36:35 1665

原创 英语经典好句

50 大英文经典句 No. 1: A genius is the person who repeats the most times! 天才就是重复次数最多的人!No. 2: God helps those who help themselves. 天助自助者!(美国人最喜欢的句子!)No. 3: It is impossible to defeat a person who never gives up. 要打败一个永不放弃的人是不可能的! No. 4: If yo

2021-10-31 18:28:54 340 1

原创 机器学习基础

1.1人工智能的起源:图灵测试:测试者和被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问,多次测试(一般为5min之内),如果有超过30%的测试者不能确定被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。 达特茅斯会议:机器学习大牛的一次两个月的会议,最后的结论是:用机器来模仿人类学习以及其他方面的智能。(1956年是人工智能元年)1.2人工智能主要分支:通过人工智能的三个关键能力:通讯,感知,行动,人工智能主要有三个技术领域,分别是1)

2021-10-31 18:21:03 405

原创 Leecode刷题笔记——第三题

题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。本来想整个滑动窗口,但是因为各种特殊情况,就一直不对,最好的滑动窗口的版本如下:public class Solution{ public int LengthOfLongestSubstring(string s) { char[] sChar = s.ToCharArray();//将字符串变为字符型数组 int Window = 0; //定义滑动窗口 ...

2021-10-31 11:38:56 193

原创 C#字符串常用方法

string str ="";string[] strArray = str.Split('截取字符'); //按字符将字符串拆分为数组str = str.Replace("n","m");//将字符串n替换为mstr = str.Remove(i,length);//删除字符串下标i,长度为8下标从0开始str = str.Substring(n); //截取字符串,下标充0开始,包括nbool bl = string.IsNullOrEmpty(str)//判断str是否...

2021-10-30 16:04:32 86

原创 Github学习笔记

命令行中输入clear就可以清空1.github中的一些基本概念:1.仓库(repository)2.收藏(star)3.复制克隆项目(fork)4.发起请求(pull request:PR)后,合适的话就合并(merge)5.关注(watch):watch一个项目以后,有任何更新,会收到通知6.事务卡片(issue):发现代码bug,一起讨论7.github主页8.仓库主页:私有仓库只有自己或者指定朋友才有权利访问9.个人主页2.一个git库(仓库)就是一个开源

2021-10-30 09:19:59 88

原创 Github学习笔记

命令行中输入clear就可以清空1.github中的一些基本概念:1.仓库(repository)2.收藏(star)3.复制克隆项目(fork)4.发起请求(pull request:PR)后,合适的话就合并(merge)5.关注(watch):watch一个项目以后,有任何更新,会收到通知6.事务卡片(issue):发现代码bug,一起讨论7.github主页8.仓库主页:私有仓库只有自己或者指定朋友才有权利访问9.个人主页2.一个git库(仓库)就是一个开源

2021-10-30 09:16:18 274

原创 unity学习笔记——协程

协程方法的一些规则:1、返回值是IEnumerator (注意:不是IEnumerable)2、返回参数时使用yield return ;(任意选择要返回的参数)3、使用StartCoroutine(method())调用协程方法协程方法执行顺序:协程方法开启后,会继续运行下面的代码,不会等到协程方法运行结束才继续执行。下面是一段典型的协程代码:using System.Collections;using System.Collections.Generic;using ...

2021-10-29 20:45:47 1777

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除