数据结构与算法
数据结构与算法的学习笔记和整理
小肖爱吃肉
欢迎关注个人公众号 【小肖爱吃肉】,和你一起记录生活的小美好
展开
-
利用7个分片确定姓氏如何编排问题的思路与解答
题目描述:将中国的百家姓按一定规则进行存储,1.存储容器为一个圆盘,将圆盘等量分为7份,每一个分片上存储若干个姓氏2.随机指定某个姓氏,对7个分片逐个进行访问,每个分片都会返回true/false告诉你这个姓氏是否在这个分片上,7个分片全部询问结束后,你就可以知道指定的是哪个姓氏了要求:对这些分片存储姓氏的规则进行合理编排以满足上诉两条规则看到这个题目首先想到的是布隆过滤器,但是布隆过滤器只能判断给定姓氏一定不存在和可能存在,无法判断这个姓氏一定存在,所以这个方案pass了, 仔细研究下题目,.原创 2020-09-03 14:50:49 · 690 阅读 · 0 评论 -
每日LeeteCode-二叉树的前序遍遍历、中序遍历、后序遍历和层级遍历
文章目录前序遍历递归迭代中序遍历递归迭代后序遍历递归迭代节点申明:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */前序遍历递归class Solution { // 存放结果集 privat原创 2020-07-28 20:46:22 · 394 阅读 · 0 评论 -
每日LeeteCode-实现LRU cache
题目描述实现一个K-V的数据结构, key和value都是int类型,value为正整数1.有固定的大小2.实现get(), set()方法,要求时间复杂度为O(1)3.当容量满的时候,采用LRU淘汰策略面试的时候拿到这道题还是挺懵的无从下手,没有在规定时间内做出来.现在回过头来想,其实要求给的蛮详细的,只要冷静下来分析下,还是挺简单的题目分析定义一个类来实现这个数据结构: LRUCache有固定大小?既然给了固定大小,就需要有属性来存储这个值,并且是不可变的private fina.原创 2020-07-26 11:44:22 · 234 阅读 · 0 评论 -
每日LeetCode-x的平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。leetCode链接:https://leetcode-cn.com/problems/sqrtx/思路1.明确目标 什么样的数字符合要求?因为是平方根的整数部分,所以这个整数a的平方一定小于给定参数x,并且是符合要求的数字里面最大的一.原创 2020-07-25 17:08:11 · 194 阅读 · 0 评论 -
每日LeetCode-并查集,等式方程的可满足性
并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题听起来很绕,其实理解后会发现这是个很优雅的数据结构前提:有很多很多个数据节点(一开始,默认这些数据节点是毫无关系的)基本原则:1. 有这样一个数组,数组下标是节点值,数组内容是这个节点的父节点(父节点的产生在后面会说到)2. 根节点的父节点是自己所有围绕并查集的数据计算,都将以这两个基本原则作为依据模型首先,根据这两个基本原则试着画出一个简单的并查集查找通过图例可以清楚地看到并查集是以树原创 2020-06-08 21:37:17 · 140 阅读 · 0 评论 -
每日LeetCode- 除自身以外数组的乘积
题目:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]最简单的思路就是遍历数组,算出整个数组的乘积,然后逐个除以当前位的数据值,就可以的得到满足条件的结果啦,但这道题有个额外条件:不要使用除法,且在O(n)时间复杂度范围内完成首先,我们来将题目重新解读——有这样一个数组,针对某一位,它存的数值是原创 2020-06-04 22:27:59 · 198 阅读 · 0 评论 -
每日LeetCode-和可被 K 整除的子数组
题目: 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出:7 解释: 有 7 个子数组满足其元素之和可被 K = 5 整除: [4, 5, 0,-2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3] 提示: 1. 1 <= A.length <= 30000 2.原创 2020-05-27 21:04:43 · 225 阅读 · 1 评论