摘要:这是力扣上一个中等难度的题目,题目是这样的 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 => 也就是说,对整个整数数组从大到小进行排序,数组下标为k-1的那个元素,就是我们需要的元素 [3,2,1,5,6,4], k = 2 => 数组中第1大的是6,第二大的是5,所以返
阅读全文
摘要:这是我面试时的一道算法题,题目是这样的 // 获取字符串的不重复最大字串 比如 abbbbbbcd 返回 bcd abefbca 返回 efbca 这道题怎么做呢,这道算法题要用滑动窗口来做 我们设定一个窗口 [left, right] 我们先看最完美的情况,字符串中都不重复 abcde 这种情况
阅读全文
摘要:这是我遇到的一个面试题, 需要说明 对ConfigAwait(false)的理解 在.NET 异步编程模型中,ConfigureAwait(false) 是一个很关键的方法,用于控制异步任务延续(continuation)的执行上下文. 它的大概意思是这样的: 当我们使用await等待一个task时
阅读全文
摘要:这道题是一道关于二叉树的算法题 这个题目有个点要特别注意,叶子节点 = 左右孩子都为 null,路径必须走到叶子才算,中途节点和等于 target 不算 这题可以采用递归法或者 BFS广度优先 队列Queue迭代法进行解答 // 二叉树节点定义 public class TreeNode { pub
阅读全文
摘要:我们前面写过一个算法是反转链表 https://www.cnblogs.com/wphl-27/p/19885408 这道题有点不一样的是,它不反转整个链表,而是反转链表中的一个区间[m,n], 还有一个算法题是反转链表前N个节点,和这个也类似 using System; // 定义链表节点 pub
阅读全文
摘要:这道题目是这样的 给定一个整数的字符串(例如:“4872”, “+32455”, ‘-3243243245325432532’, “abc123”, “123abc”),把这个字符串转换成Int类型, 输出为(4872, 32455, -2147483648,0, 123 )。(请不要用任何现有的A
阅读全文
摘要:这个算法题是要求实现单词反转功能 比如 “This is a word” 反转后结果: “word a is This” 这个题目,我们需要使用数组Array的Reverse功能, 先把字符串按照空格" "间隔(要考虑单词间有多个空格的情况)转换为单词数组,然后使用Array.Reverse()方法
阅读全文
摘要:这个算法题目是, 在一个包含数字的字符串中,求其中数字字串的和。 例如:a1cd2e33,返回36。 a1cd2e345 返回 348 这个题目可以看出,它的难点在于几个数字连在一起的情况,因为如果数字都是字母隔开,比如a1b2c3d8 这种就很简单,只需要循环判断每一个字符,只要是 '0'到'9'
阅读全文
摘要:这个算法题,是来判断2个string字符串,是否互为旋转词 举例:a="cdab",b="abcd",返回true.a="1ab2",b="ab12”,返回fase,a="2ab1",b="ab12",返回true。 这道算法题的解题思路: 两个长度相等的字符串 A和 B 互为旋转词,当且仅当
阅读全文
摘要:这个题目是在一个数组中,有一个滑动窗口,滑动窗口从数组的左边(i=0)开始,依次往右边滑动,获取每滑动一次的窗口内的最大值,得到一个列表进行返回 比如数组 int[] a = { 4, 3, 5, 4, 3, 3, 6, 7 }; 滑动窗口 w = 3,那么返回值列表如下: 1. 滑动窗口在数组中的
阅读全文
摘要:这个算法题是求一个无序的整形数组中,最小的K个数 比如 整形数组 [6,3,8,2,1] => 比如,求这个整形数组里面最小的4个数据,那应该是 [6,3,2,1] 这个题目我们用.NET6+ 中的 PriorityQueue(优先级队列) 来实现. PriorityQueue默认是小根堆 堆Hea
阅读全文
摘要:这道算法题是,求一个整形数组中所有元素的和,要求不能用循环 不能用循环,算法题,那就应该是考递归,用递归来实现 /// <summary> /// 求一个数组中所有元素的和 /// </summary> public class Solution { public int GetSumOfArray
阅读全文
摘要:今天看到一篇非常好的写C#委托的文章,所以想记录下来 C#中的委托,顾名思义,就是把事情委托给别人来办理,这包括很多种情况,比如我们想在主窗体中想刷新子窗体的控件(修改子窗体的控件的值); 又比如在多线程的情况下,在其他线程中想刷新主线程的控件; 或则在某个窗体中执行另一个窗体的方法说白了,就是这件
阅读全文
摘要:有一次在公司review代码时,有一个password的字段,原来用的是String类型,有同事提到应该用SecureString比较好 于是我花了点时间了解了一下什么是SecureString, 以及它与String类型的区别 正常的String类型值,在脱离开作用域后,它的值在内存中并不会立即被
阅读全文
摘要:在新西兰工作时,有一次的面试中问到了Parallel类进行多线程编程 我们知道,C#中实现多线程编程有多种方式,包括 1. 使用Thread开启一个新的线程 2. 使用Parallel类 3. 使用Task 我们今天来说一下C#中的Parallel类,Parallel类是C#中可以用来进行多线程编程
阅读全文
摘要:在学习C#中的Task方法时,可以知道Task启动一个异步线程方法可以用Task.Run()进行,具体可以参看博客 https://www.cnblogs.com/yaosj/p/10342883.html 和 https://www.cnblogs.com/wynblogscc/p/1513842
阅读全文
摘要:C#中的左移 << M<<N => 将第一个操作数M向左移动第二个操作数N指定的位数(N位), 空出的位置补0 => 左移相当于乘法, 左移1位相当于乘以2, 左移2位相当于乘以4, 左移3位相当于乘以8 x<<1 = x * 2 x<<2 = x * 4 x<<3 = x * 8 x<<4 = x
阅读全文
摘要:代码开发中,用二进制的情况很少,最近看一个算法题,涉及到二进制,特记录一下C#中二进制和十进制的转换方法 C#中所有的二进制数都是以字符串表示 (显然,十进制是以整数表示) ,比如二进制数据 11011111, 应该表示为字符串 "11011111" 1. 十进制转换为二进制 比如,把十进制整数22
阅读全文
摘要:在看一个算法题时,看到异或这种操作,平时在项目开发中在代码中用的很少,于是特意看了一下,总结如下: 异或 在英文中是 Exclusive OR, 缩写成 xor. 在C#中用^来表示异或运算符, 这个运算符主要是用来进行二进制比较 异或对二进制数据进行比较,对二进制中的每一位进行比较,如果相同,结果
阅读全文
摘要:在项目开发中,遇到一个问题,是这样的,我们有一个接口IConfiguration public interface IConfiguration { string DefaultValue { get; } int Order { get; } } 另外有一个接口ITelemetryConfigur
阅读全文