随笔分类 -  Leetcode算法

每日两道算法题,锻炼思路
摘要:DFS:是一个执着的人 (全排列可以使用DFS) BFS::yin_yang:眼观六路,耳听八方 解释为什么BFS能具备“最短路的特点”? DFS例题: 1.(排列组合问题) 树的深度为n,u从深度0开始,dfs(u):走到最后一层则输出“深度优先搜索结果”,否则【选取剩余没使用过的数据】 》当前路 阅读全文
posted @ 2021-06-30 22:22 ~快乐王子~ 阅读(57) 评论(0) 推荐(0)
摘要:数据结构(3) acwing 1.hash表 哈希函数概念: (1)x mod 10 ^5 即缩小了值域 {模的数最好取成**“质数”**:这样冲突的概率最小} (2)解决冲突 求大于i的第一个质因子 存储结构 开放寻址法 (数组开辟长度为2~3倍){涉及到操作:添加、查询、删除(只是做一个标记,并 阅读全文
posted @ 2021-06-29 20:24 ~快乐王子~ 阅读(125) 评论(0) 推荐(0)
摘要:数据结构(2)acwing 1.trie树 快速存储和查找字符串的集合 结构特征: 例题:Trie字符串统计 ? 2.并查集(近乎O(1)) 思路 将两个集合合并 询问两个元素是否在一个集合中 基本原理: 每个集合用一颗树来表示,树根的编号就是整个集合的编号。每个节点存储他的父节点,p表示x的父节点 阅读全文
posted @ 2021-06-26 20:42 ~快乐王子~ 阅读(173) 评论(0) 推荐(0)
摘要:数据结构(1)acwing (用数组模拟 >称为静态链表) 1.单链表和邻接表(存储树和图) 规范: -1表示空集,idx:指针(当前用到了哪个点) 第1个插入数的下标为0,因此第k个插入数的点下标为(k-1) int e[N]:代表数组内部的值,ne[N]:代表指针,指向下一个节点 插入节点到链表 阅读全文
posted @ 2021-06-26 20:40 ~快乐王子~ 阅读(137) 评论(0) 推荐(0)
摘要:1.合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n) 阅读全文
posted @ 2020-10-06 16:04 ~快乐王子~ 阅读(228) 评论(0) 推荐(0)
摘要:1.最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现复杂度为 O(n) 阅读全文
posted @ 2020-09-30 19:09 ~快乐王子~ 阅读(213) 评论(0) 推荐(0)
摘要:1.移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 num 阅读全文
posted @ 2020-09-29 15:25 ~快乐王子~ 阅读(199) 评论(0) 推荐(0)
摘要:1.求两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因 阅读全文
posted @ 2020-09-28 20:10 ~快乐王子~ 阅读(218) 评论(0) 推荐(0)