数据结构与算法
coffejoy
这个作者很懒,什么都没留下…
展开
-
BitMap与RoaringBitmap、JavaEWAH
一、BitMap介绍BitMap使用bit位,来标记元素对应的Value。该算法能够节省存储空间。假设一个场景,要存0-7以内的数字[3,5,6,1,2],尽可能的节省空间。一种思路就是单纯使用数组存储,但如果数据量放大百万倍甚至千万倍呢,数组的所占用的内存会非常大。另一种思路是使用BitMap。表示[3,5,7,1,2],我们可以用8bit的空间来存储,每个数字都在对应的位置中以1的方式...原创 2019-04-21 01:02:18 · 2560 阅读 · 2 评论 -
算法学习 —— 动态规划练习(一)
一、练习一1.1 题目介绍121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 ...原创 2019-04-27 15:41:13 · 243 阅读 · 0 评论 -
算法学习——动态规划讲解
概念通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。参考文档算法数据结构面试通关(经验全集)动态规划...原创 2019-04-24 02:56:08 · 211 阅读 · 0 评论 -
算法学习 —— 动态规划练习(二)
一、不同路径(LeetCode-62)1.1 题目介绍不同路径1.2 解题思路计数型动态规划原创 2019-04-29 12:31:57 · 207 阅读 · 0 评论 -
算法练习 —— LeetCode 1-10题
一、两数之和题目描述给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路有目标数,又限制是两个数之和,所以知道若一个数为nums[i],...原创 2019-05-01 02:17:26 · 187 阅读 · 0 评论