随笔分类 -  数据结构与算法

摘要:一、 缀点成线( "LeetCode 5230" ) 1.1 题目描述 1.2 解题思路 比较简单的一题,利用公式 y = kx + b,确定好k和b就好,并且要考虑一种情况,函数 x = h。 1.3 解题代码 阅读全文
posted @ 2019-10-21 11:24 清泉白石 阅读(185) 评论(0) 推荐(0) 编辑
摘要:一、最小绝对差( "LeetCode 5189" ) 1.1 题目描述 1.2 解题思路 数组排好序,获取最小的差值即可。 1.3 解题代码 java public class Solution { class Test { public List list; public Integer num; 阅读全文
posted @ 2019-09-22 12:19 清泉白石 阅读(202) 评论(0) 推荐(0) 编辑
摘要:一、“气球” 的最大数量( "LeetCode 5189" ) 1.1 题目描述 1.2 解题思路 统计各个字母的出现的次数,然后根据“木桶最短板”返回就好。 1.3 解题代码 二、反转每对括号间的子串( "LeetCode 1190" ) 2.1 题目描述 2.2 解题思路 使用递归去解,每次只反 阅读全文
posted @ 2019-09-15 20:03 清泉白石 阅读(346) 评论(0) 推荐(0) 编辑
摘要:一、公交站间的距离( "LeetCode 5181" ) 1.1 题目描述 1.2 解题思路 比较简单的一题,顺时针、逆时针两次遍历,就能解决。 1.3 解题代码 java class Solution { public int distanceBetweenBusStops(int[] dista 阅读全文
posted @ 2019-09-09 00:25 清泉白石 阅读(222) 评论(0) 推荐(0) 编辑
摘要:一、LRU缓存机制( "LeetCode 146" ) 1.1 题目描述 1.2 解题思路 思路1: 使用Map存放key,value,使用List存放key和count,count为最新的index值,每次put、get操作都会使index自增。 进行put操作时,如果发现超过容量值capacit 阅读全文
posted @ 2019-09-08 01:57 清泉白石 阅读(447) 评论(0) 推荐(0) 编辑
摘要:一、查询无效交易( "LeetCode 1169" ) 1.1 题目描述 1.2 解题思路 根据,它和另一个城市中同名的另一笔交易相隔不超过 60 分钟(包含 60 分钟整) 得出 城市A和其他城市任何一笔交易,时间的绝对值要大于60分钟才有效,若小于60分钟,则当前交易和其他城市的交易均无效。 理 阅读全文
posted @ 2019-08-27 20:57 清泉白石 阅读(220) 评论(0) 推荐(0) 编辑
摘要:成绩 一、一年中的第几天( "LeetCode 1154" ) 1.1 题目描述 1.2 解题思路 比较容易的一题,搞清楚平年、闰年的判定规则,就很容易做出来。 1.3 解题代码 (4)边界 循环结束,i = d,j = target,即到达边界点,也就求出解。 2.3 解题代码 阅读全文
posted @ 2019-08-24 19:53 清泉白石 阅读(272) 评论(0) 推荐(0) 编辑
摘要:一、拼写单词( "LeetCode 1160" ) 1.1 题目描述 1.2 解题思路 由于给定的chars,每个字母只能用一次,所以用大小为26的数组charsArray来表示a z(例如charsArray[0]代表字符a可以使用的次数,charsArray[25]代表字符z可以使用的次数),存 阅读全文
posted @ 2019-08-19 22:50 清泉白石 阅读(698) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍BitMap的算法思想,以及开源工具类JavaEWAH、RoaringBitmap的简单用法。 一、BitMap 介绍 BitMap使用 ,来标记元素对应的Value。该算法能够 。 假设一个场景,要存0 7以内的数字[3,5,6,1,2],尽可能的节省空间。 一种思路就是单纯使用数组存 阅读全文
posted @ 2019-05-28 15:51 清泉白石 阅读(8641) 评论(0) 推荐(0) 编辑
摘要:一、两数之和 1.1 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 1.2 解题思路 有目标数,又限制是两个数之和,所以知道若一个数为nums[i],则另一个数为target nums[i]。 借助Ma 阅读全文
posted @ 2019-05-13 07:30 清泉白石 阅读(344) 评论(0) 推荐(0) 编辑
摘要:一、不同路径(LeetCode 62) 1.1 题目介绍 "62. 不同路径" 1.2 解题思路 计数型动态规划 最后一步 最右下角的坐标假设为(m,n),则假设走到(m,n)所有可能的路径为f[m][n] 子问题 走到(m,n)的前一步有两种可能一种是(m 1,n),一种是(m,n 1) 状态转移 阅读全文
posted @ 2019-05-13 07:27 清泉白石 阅读(506) 评论(0) 推荐(0) 编辑
摘要:一、买卖股票的最佳时机(LeetCode 121) 1.1 题目介绍 "121. 买卖股票的最佳时机" 1.2 解题思路 想要利润最大,尽可能地要保证购买的时候价格最低,总利润最高。由此可以列出状态转移方程。 buy = min{buy,price} profilt = max{profilt,pr 阅读全文
posted @ 2019-05-13 07:27 清泉白石 阅读(434) 评论(0) 推荐(0) 编辑
摘要:一、概念 通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 二、题型特点 计数 有多少种方式走到最右下角 求最大值最小值 从左上角走到右下角的最大数字和 求存在性 能否选出k个数使得和为sum 三、如何使用动态规划 这里先看一道Lee 阅读全文
posted @ 2019-05-13 07:25 清泉白石 阅读(1178) 评论(0) 推荐(0) 编辑
摘要:树的概念 二叉树的概念 每个节点最多有2个子节点。 满二叉树 所有的叶子节点都在最后一层。 节点的总数为 2^n 1 ,n为层数。 完全二叉树 所有叶子节点在最后一层或倒数第二层。 也就是说,满二叉树,是一种特殊的完全二叉树。 前序中序后序遍历(以递归的方式) 这里的前中后指的是父节点的位置。 前序 阅读全文
posted @ 2016-12-20 00:28 清泉白石 阅读(430) 评论(0) 推荐(0) 编辑
摘要:IDEA 1 快捷键 快速查找某个类 double shift 显示类结构图 ctrl+H 代码上移或下移 ctrl+shift+up/down 查找文件 ctrl+shift+N 删除当前行 ctrl+x 生成get、set方法 alt+Ins 实现接口 ctrl+I 快速引入类 alt+ente 阅读全文
posted @ 2016-11-28 14:39 清泉白石 阅读(278) 评论(0) 推荐(0) 编辑
摘要:约瑟夫环 题目描述 问题分析 记住约瑟夫环公式 公式推导 0 1 2 3 4 ....N 若M = 3,第一个出列的人,是2,也就是 若M = 5,则第一个出列的人,是4,也就是 所以得出出列的数i = ``(M 1) % N`` 阅读全文
posted @ 2016-07-22 19:35 清泉白石 阅读(227) 评论(0) 推荐(0) 编辑
摘要:dir 阅读全文
posted @ 2016-07-21 11:27 清泉白石 阅读(124) 评论(0) 推荐(0) 编辑
摘要:dir 阅读全文
posted @ 2016-07-10 21:54 清泉白石 阅读(128) 评论(0) 推荐(0) 编辑
摘要:基础类 冒泡排序 快速排序 java public class QuickSort implements SortAlgorithm { @Override public T[] sort(T[] array) { doSort(array, 0, array.length 1); return a 阅读全文
posted @ 2016-07-06 00:00 清泉白石 阅读(175) 评论(0) 推荐(0) 编辑
摘要:旅行商问题(TSP)介绍 旅行商问题(TravelingSalesmanProblem,TSP)是一个经典的组合优化问题。经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。 从图论的角度来看,该 阅读全文
posted @ 2016-06-23 22:50 清泉白石 阅读(347) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示