C#学习笔记 1 .NET框架.NET框架由三部分组成: 编程工具:包括Visual Studio集成开发环境,调试器,.NET兼容的编译器等 CLR(Common Language Runtime,公共语言运行库):在运行时管理程序的执行,包括内存管理和垃圾收集、代码安全验证、代码执行线程管理及异常处理等 BCL(Base Class Library,基类库):包括通用基础类(文件操作、字符串操作等相关的类 2021-05-05 编程语言 C#
【Leetcode】258.各位相加 258.各位相加题目给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。 方法分析如下: 整数abc变为a+b+c的过程中减少的值一定是9的倍数,证明如下:$$abc = a * 100 + b * 10 + c = a * 99 + 2021-02-19 算法
【Leetcode】172.阶乘后的0 172.阶乘后的0题目给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。 方法如果计算出阶乘后再统计尾数中0的数量的话,当n很大时计算阶乘的过程肯定会溢出。因此需要考虑其他方法 2021-02-19 算法
【Leetcode】169.多数元素 169 多数元素题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1:输入: [3,2,3]输出: 3 示例 2:输入: [2,2,1,1,1,2,2]输出: 2 思路: 哈希表方法:我们使用哈希映射(HashMap)来存储每个元素以及出现的次数。对于哈希映射 2021-02-19 算法
【Leetcode】128. 最长连续序列 128. 最长连续序列题目给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 进阶:你可以设计并实现时间复杂度为 O(n) 的解决方案吗? 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 示例 2: 输入:nums = [0,3,7,2,5, 2021-02-19 算法
【Leetcode】29.两数相除 29.两数相除题目给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 示例 1: 输入: dividend = 2021-02-19 算法
【Leetcode】381.O(1) 时间插入、删除和获取随机元素 - 允许重复 381.O(1) 时间插入、删除和获取随机元素 - 允许重复题目设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。 注意: 允许出现重复元素。 insert(val):向集合中插入元素 val。 remove(val):当 val 存在时,从集合中移除一个 val。 getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。 2021-02-19 算法
【Leetcode】260.只出现一次的数字 III 260.只出现一次的数字 III题目给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。 示例 : 输入: [1,2,1,3,2,5]输出: [3,5] 方法(位运算)由于两个相同的数字异或的结果为0,因此将数组中所有元素异或得到的结果res即为两个Single Number异或的结果 我们进行如下考虑:如果我们将数组中的元素分为两组,每 2021-02-19 算法 位运算
【Leetcode】231.2的幂 231 2的幂题目:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 方法一:一直除2看最后得到的是否为1,这种方法的时间复杂度为O(logn)。 1234567891011121314class Solution { public boolean isPowerOfTwo(int n) { if(n <= 0) re 2021-02-19 算法 位运算
【Leetcode】137.只出现一次的数字 II 137.只出现一次的数字 II题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1,99] 输出: 99 方法(位运算)把每一个整数考虑成长度为32位的二进制数。我们累 2021-02-19 算法 位运算