LeetCode
文章平均质量分 62
GDUT_Ember
这个作者很懒,什么都没留下…
展开
-
剑指offer:Day3
题目1解题思路这种题目使用Java的字符串带有API就可以实现class Solution { public String replaceSpace(String s) { return s.replace(" ","%20"); }}题目2解题思路这里我是在索引位置上寻找突破口字符串进行移K位后(i代表位置索引位置)i - k为正数,那么移位后的索引就是这个位置i - k为负数,那么移位后的索引为length + (i - k),相当于从最后面进原创 2021-09-06 22:52:09 · 122 阅读 · 0 评论 -
剑指offer:Day2
题目1解题思路这道题跟翻转链表比较相似,只不过不需要去修改链表,只需从尾到头去返回每一个节点的值即可第一种解法:使用栈栈的特性是先进后出,所以我们完全可以遍历链表,将链表的值存进栈中,然后再从栈中弹出放进数组里面/** * 使用栈来完成倒序 */class Solution { private Stack<Integer> stack = new Stack<Integer>(); public int[] reversePrint(ListNo原创 2021-09-06 22:33:15 · 188 阅读 · 0 评论 -
剑指offer:DayOne
剑指offer:Day1题目1解题思路使用两个栈去实现队列,所以我们要对栈和队列的特性要有所了解栈的特性就是先进后出,而队列的特性是先进先出,假如现在有两个杯子,一个杯子装满了水,怎么利用另外一个杯子去获取装满水的杯子的最下层的水,答案就是:将水转移进另外一个杯子,那么此时杯子的水最上层的就是原先最下层的水就像下面这样给出V1版代码class CQueue { //使用两个杯子 //one杯子用来装水 //two杯子用来置换水 private Stack<I原创 2021-09-04 22:44:47 · 221 阅读 · 1 评论 -
LeetCode:快慢指针解决问题
快慢指针是指定义两个相同类型的指针,只不过移动速率不同,一快一慢,用来解决算法问题。删除有序数组的重复项题目如下思路:已知数组是有序的,所以重复元素肯定是相邻的,而且只会出现一次,那么这里可以使用快慢指针来定位到重复的元素,一开始慢指针比快指针的慢一个位置,比较慢指针和快指针指向位置的值,如果出现重复,那么就删除慢指针前面的那个值(也就是数组的下一个位置,这是为了要保留一个,即满足重复元素要删剩一个的要求),删除操作如下快指针继续移动,直到移动到的位置里面的值不等于此时慢指针的值将慢指针下一个原创 2021-04-12 12:21:24 · 293 阅读 · 0 评论