
数据结构与算法
文章平均质量分 71
平时遇到的算法问题与刷题
香草星冰乐
南京理工大学研究生,主要研究方向机器学习的隐私保护。
展开
-
Java中Deque、Queue与Stack用法
Queue(单向队列):Queue接口,是集合框架Collection的子接口,是一种常见的数据结构,遵循先进先出的原则。是基于链表来进行实现,的单向队列。LinkedList接口,实现了Queue,所以LinkedList,在插入和删除操作,效率会比较高。//定义字符类型的单向队列Queue<Character> queue = new LinkedList<>();poll():将队首的元素删除,并返回该元素。peek():返回队首的元素,但不进行删除操作。offe原创 2021-03-11 20:24:11 · 1160 阅读 · 0 评论 -
动态规划Dynamic programming笔记自用
动态规划Dynamic programming笔记笔记用途介绍及解题思路例题:CoinChange题目类型分类坐标型动态规划Unique PathsUnique Paths II最小路径和轰炸敌人(Bomb Enemy)序列型动态规划Paint House涂房子2(Paint House2)最长连续单调子序列Decode Ways比特位技术(Counting Bits)打家劫舍(House Robber)打家劫舍 II(House Robber II)买卖股票的最佳时机(Best Time To Buy A原创 2021-02-23 15:55:44 · 474 阅读 · 1 评论 -
从二进制角度理解快速乘与快速幂
前提知识:十进制与二进制相互转换n&1 (与操作): 判断 n 二进制最右一位是否为 1如为1则返回真n>>1 (移位操作): n 右移一位(可理解为删除最后一位,n除以2)快速乘法模板:无论是快速乘法a∗ba*ba∗b还是快速幂 aba^{b}ab ,对其进行二进制拆分,把b拆成二进制形式。 a∗b=a∗(a*b=a*(a∗b=a∗(ck-1∗2k−1+*2^{k-1}+∗2k−1+ck-2∗2k−2+*2^{k-2}+∗2k−2+ck-3∗2k−3+*2^{k-3}+原创 2021-02-09 14:16:18 · 261 阅读 · 0 评论 -
Leetcode刷题顺序(自用更新中)
Leetcode刷题顺序与总结(更新中)文章目录Leetcode刷题顺序与总结(更新中)前言一、数组1.二分法二、链表总结前言刷题顺序:先从同一类型里题目开始刷起,同一类型里再从简单到中等到困难刷起,题型顺序建议:数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论。整理一些自己在刷题时的想法,参考链接:https://github.com/youngyangyang04/leetcode-master原创 2020-12-09 20:55:12 · 1317 阅读 · 0 评论