Loading

摘要: 题目 707. 设计链表 思路1(单链表) 用单链表来实现 用一个head作为头结点,不存储数据 再用size存储当前链表长度,防止操作时候越界 代码 class ListNode { int val; ListNode next; public ListNode(int val) { this.v 阅读全文
posted @ 2020-11-08 14:52 linzeliang 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 什么是单调栈? 单调栈实际上就是栈,只是限制要比普通的栈更严格而已了。要求是每次入栈的元素必须要有序(如果新元素入栈不符合要求,则将之前的元素出栈,直到符合要求再入栈),使之形成单调递增/单调递减的一个栈。 比如我们有一个数组: **单调递增栈:**只有比他小的才直接入栈,如果大于就先出栈再入栈(在 阅读全文
posted @ 2020-11-08 11:04 linzeliang 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 题目 768. 最多能完成排序的块 II 思路 利用单调递减栈来解题 遍历数组,将元素存入栈中,再利用max记录当前栈顶的最大值 如果遇到比当前栈元素大的值,那么可以直接入栈,因为可以单独分一块;但是如果遇到比当前栈顶元素小的值,那么应该将之前的元素依次出栈,直到遇到小于等于该值的元素停止出栈,然后 阅读全文
posted @ 2020-11-06 23:22 linzeliang 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1、公钥密码体制的核心思想是 加密和解密采用不同的密钥。这是公钥密码体制和传统的对称密码体制最大的区别。对于传统对称密码而言,密文的安全性完全依赖于 密钥的保密性,一旦密钥泄漏,将毫无保密性可言。但是公钥密码体制彻底改变了这一状况。在公钥密码体制中,公钥是公开的,只有私钥是需要保密的。知道公钥 和密 阅读全文
posted @ 2020-11-05 15:25 linzeliang 阅读(908) 评论(0) 推荐(0) 编辑
摘要: 题目 232. 用栈实现队列 思路1 即然是使用两个栈,那么一个栈就用来做辅助栈,一个栈用来存元素 我们将栈顶作为队头,将栈底作为队尾,所以如果要push数据的话,先将stack1栈的数据暂时存到stack2辅助栈中,然后将要插入的数据push进入stack1,最后再将stack2的暂存的数据填回到 阅读全文
posted @ 2020-11-04 21:24 linzeliang 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 题目 394. 字符串解码 思路 创建两个栈进行解题,一个用来存放数字,另一个用来临时存放子字符串 由于可能会在[]中还包含其他的[],所以我们只要遇到[就先将其前面的字符串暂时入栈,稍后再进行计算 如果遇到] ,则将存放数字的栈和存放子字符串的栈分别出栈一个,然后进行字符串的拼接,然后再将该字符串 阅读全文
posted @ 2020-11-04 20:07 linzeliang 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目 请你设计一个支持下述操作的栈。 实现自定义栈类 CustomStack : CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容纳的元素数量,栈在增长到 maxSize 之后则不支持 push 操作。 void push(int x) 阅读全文
posted @ 2020-11-03 01:17 linzeliang 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 题目 821. 字符的最短距离 思路1 使用一个res数组,而且要初始化为Integer.MAX_VALUE 从左到右遍历字符串,直到遇到我们的目标字符时候停下来 以目标字符为中心,pre和next双指针向两边移动,并且给数组赋值,从1开始递增 如果指针再移动过程中遇到当前的值大于等于左边/右边的值 阅读全文
posted @ 2020-11-02 00:55 linzeliang 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 题目 给你一个可装载重量为W的背包和N个物品,每个物品有重量和价值两个属性。其中第i个物品的重量为wt[i],价值为val[i],现在让你用这个背包装物品,最多能装的价值是多少? 举个简单的例子,输入如下: N = 3, W = 4 wt = [2, 1, 3] val = [4, 2, 3] 算法 阅读全文
posted @ 2020-11-01 14:59 linzeliang 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输 阅读全文
posted @ 2020-11-01 01:23 linzeliang 阅读(73) 评论(0) 推荐(0) 编辑