力扣刷题-JAVA
喜欢编程的小菜鸡的刷题记录
OneDAYL4
学习人工智能的小菜鸡,想成为IT大佬
展开
-
菜鸡的leetcode刷题笔记-数组中的重复数字
前言leetcode上,剑指offer,:题目地址解题思路本题比较简单1.哈希表遍历数组,每个元素放入哈希表中,若该数字已经在哈希表中存在了,那么就返回该数字class Solution { public int findRepeatNumber(int[] nums) { Set<Integer> dic = new HashSet<>(); for(int num : nums){ if(dic.con原创 2021-10-26 20:45:32 · 181 阅读 · 0 评论 -
菜鸡的leetcode刷题笔记-左旋转字符串
前言leetcode上,剑指offer,左旋转字符串:题目地址解题思路本题比较简单1.字符串拆分拼接把字符串拆分,拆分位置为需要旋转的字符的个数,然后再拼接起来便可JAVA里面对字符串拆分可以使用substring数组代码如下:class Solution { public String reverseLeftWords(String s, int n) { String res = new String(); res = s.substring(n原创 2021-10-25 20:49:22 · 165 阅读 · 0 评论 -
菜鸡的leetcode刷题笔记-替换字符串中的空格
前言leetcode上,剑指offer,复杂链表的复制:题目地址解题思路对于一个普通链表的复制,我们可以从头到尾,遍历节点,复制这个链表,但是对于这个复杂链表,由于一个节点会有random指针指向一个不确定的节点,而这个节点按照顺序可能还没有被创建,因此不能通过这种方式复制。1.回溯+哈希表具体思路是,使用一个哈希表,记录每一个原始链表节点对应的复制出来的新链表节点的创建情况,如果已经创建了,就放到这个哈希表中,如果没有被创建,哈希表中就没有。然后我们开始遍历原始链表,从头节点开始,检查这个原原创 2021-10-18 19:57:20 · 205 阅读 · 0 评论 -
菜鸡的leetcode刷题笔记-反转链表
前言leetcode上,剑指offer,反转链表:题目地址解题思路1.迭代其实很简单,我只需要遍历链表的节点,然后把当前节点next指针指向的节点,替换成上一个节点便可,因此需要单独保存以下上一个节点,同时,也需要保存一下下一个节点,因为原来的链表的顺序不能乱。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListN原创 2021-10-17 22:22:22 · 147 阅读 · 0 评论 -
菜鸡的leetcode刷题笔记-从尾到头打印链表
前言leetcode上,剑指offer,从尾到头打印链表:题目地址基本知识什么是链表:链表是一种数据结构,里面存放了一系列数据,类似于数组。不同之处在于,数组中的数据在内存中的存储空间是连续的,因此可以直接通过元素的索引取出元素。但链表中的数据在内存中的存储空间不是连续的,链表的每一个数据节点包含数据、指向下一个节点的指针两部分,因此链表获取某个特定节点,只能从头一个一个往下找。链表的优点在于,不需要连续的存储单元,修改节点的复杂度较低,数据在修改节点时,需要把其余所有的元素移动位置,复杂度较原创 2021-10-13 21:25:36 · 123 阅读 · 0 评论 -
菜鸡的LeetCode刷题笔记-包含min函数的栈
前言leetcode上,剑指offer,包含min函数的栈:题目地址解题思路对于栈来说,pop、push、peek的时间复杂度都是O(1),但是如果要找最小值的话,时间复杂度就是O(n),因为需要遍历栈中的元素,那么如何降低时间复杂度呢?就用空间换时间,构造一个辅助栈,维护这个栈,使得栈顶的元素始终为原始栈中的最小元素便可。class MinStack { Stack<Integer> stack1,stack2; /** initialize your data s原创 2021-10-12 21:18:33 · 111 阅读 · 0 评论 -
菜鸡的LeetCode刷题笔记-两个栈实现队列
文章目录前言1.基础知识1.1 数据结构:栈1.1 数据结构:队列2.解题思路2.1 解题思路2.1.1 一个栈实现插入,一个栈实现删除前言leetcode上,剑指offer,用两个栈实现队列:题目地址1.基础知识1.1 数据结构:栈栈是一种数据结构,简单来说,数据像大饼一样被叠放在一起,数据只能放在栈的最上方,在取出数据的时候,只能从最上方取。栈中,添加数据的时候,就叫做入栈,取出数据的时候就叫做出栈,如下图所示:1.1 数据结构:队列队列与栈类似,也是一种数据结构,一种特殊的线性表,和原创 2021-10-12 20:46:48 · 122 阅读 · 0 评论