![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
从基础数据结构开始 学习算法 基本的数据结构实现 计划后面刷题
Fatestay_DC
这个作者很懒,什么都没留下…
展开
-
子数组最大平均数
给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 示例 1: 输入: [1,12,-5,-6,50,3], k = 4 输出: 12.75 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 简单的滑动窗口题目:直接暴力求解会导致时间复杂度过高,大量数据输入超出最大运行时间 使用滑动窗口优化减少循环嵌套 1.初始前k个数的值sum 2.从第k开始 遍历数组依次向前 +一个元素 同时减去后面的元素 3.最后得出最大的值 求出结果 public class So原创 2020-09-23 18:54:04 · 284 阅读 · 0 评论 -
摩尔投票解决主要元素问题
数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 示例 2: 输入:[3,2] 输出:-1 示例 3: 输入:[2,2,1,1,1,2,2] 输出:2 说明: 你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗? 1.设置计数器cnt为0 初始元素major为数组第一个元素 2.遍历数组 当cnt为0时候 将当前推选元素赋值给major 并且+1 如果不为0 判断当前元素是否等原创 2020-09-18 11:30:04 · 74 阅读 · 0 评论 -
寻找两个正序数组的中位数
给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5 1.数组初始化 2.遍历数组 从小到大 赋值到新的数组 3.根据奇数偶数 返回不同原创 2020-09-17 18:17:14 · 123 阅读 · 0 评论 -
转置矩阵
给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]] 示例 2: 输入:[[1,2,3],[4,5,6]] 输出:[[1,4],[2,5],[3,6]] 1.C# 二维矩阵初始化 2.二维数组的遍历以及赋值 public class Solution { public int[][] Transpose(int[][]原创 2020-09-17 17:18:28 · 220 阅读 · 0 评论 -
两数之和
public class ListNode { public int val; public ListNode next; public ListNode(int x) { val = x; } } class Program { public static ListNode AddTwoNumbers(ListNode l1, ListNode l2) { ListNo原创 2020-05-29 11:39:17 · 119 阅读 · 0 评论 -
排序
冒泡排序 重复从序列右边开始比较相邻两个数字大小 再根据结果交换两个数字位置 ```csharp class Program { static void Main(string[] args) { void Sort(int[] arr) { int temp = 0; for (int i = 0; i < arr.Length - 1; i++原创 2020-05-25 16:17:57 · 141 阅读 · 0 评论 -
第一本算法书-结构
哈希表 哈希表存储是由key value组成的数据 使用哈希表解决线性查询费时的问题 准备数组来存储数据 使用Hash计算哈希值 放入对应的数组位置中 放入过程中会遇到相同的值导致冲突 可以使用链表在已有数据的后面继续存储新数据(链地址法) 也可以计算出候选地址解决冲突(开放地址法)以及线性探测法 放入完成之后 可以对数据进行查询 首先计算出哈希值 查到对应的位置 如果使用了链表 需要结合链表的线性查找 最后得到结果 堆 堆是一种图的树形结构 被用于实现优先队列 可以自由添加数据 但取出数.原创 2020-05-12 15:52:38 · 114 阅读 · 0 评论