LeetCode
文章平均质量分 80
王多头发
有急事邮箱我 bald0wang@foxmail.com
展开
-
Day1 LeetCode 2 4 5(JAVA版)
第一天学习心得先说说今天的题目 LeetCode 编号 2题 4题 5题本来是不难,奈何我太弱了。我真是硬着头皮在写,最后还是抄了作业(真香!)都是java写的 以后就刚java写完的话已经11点25分嗯 今天感觉自己太弱了 还在玩耍 。1.两数相加(LeetCode 2)题目说说这个题的思路 我觉得比较好的想法这个题还有个问题就是不能先算数字再求。这样浪费时间而且效果不好。首先题目要求求出两个数相加 然后要考虑进位。那就会有像个数不等长的问题..原创 2021-01-28 22:46:54 · 182 阅读 · 0 评论 -
Day17 LeetCode 344 557(JAVA版)
目录1. 反转字符串(LeetCode 344 题)1.1题目1.2思路2.反转字符串中的单词 III(LeetCode 557 题)2.1题目2.2思路1. 反转字符串(LeetCode 344 题)1.1题目1.2思路最好的方法就是循环双指针,一个指头一个指尾。然后头++尾--互相交换数据。时间复杂度为n,空间复杂度为1.class Solution { public void reverseString(char[] s) { ..原创 2021-01-28 22:28:22 · 183 阅读 · 1 评论 -
Day16 LeetCode 237 238 292(JAVA版)
1. 删除链表中的节点(LeetCode 231题)1.1题目1.2思路这个题说是一个链表题,但是对链表操作的考察并不多。反而是个脑筋急转弯的题。按照正常的思路大家一般都会去找头结点,但是没有头结点一是没了方向不知道怎么做。其实题目给出说每个结点的值唯一。这个条件非常重要。如果唯一,那么完全可以把值轮流复制下去,然后删除尾结点即可模拟了删除中间结点的操作。/** * Definition for singly-linked list. * public clas...原创 2021-01-28 20:23:38 · 1024 阅读 · 0 评论 -
Day15 LeetCode 231 235 236(JAVA版)
1. 2的幂(LeetCode 231题)1.1题目1.2思路方法一不用多说和2有关的题目其实都需要位运算。通过右移代替除法,然后对输入的数据进行遍历处理,如果过程中出现了大于二且为奇数的说明不可能为2的幂。时间复杂度为n。static class Solution { public boolean isPowerOfTwo(int n) { if (n==2||n==1) return true; whi..原创 2021-01-28 01:03:12 · 194 阅读 · 0 评论 -
腾讯LeetCode精选50题
腾讯LeetCode精选50题快捷入口:https://leetcode-cn.com/problemset/50/题名 题解 出现频率 2 两数相加 中等 4 寻找两个有序数组的中位数 困难 5 最长回文子串 中等 7 整数反转 简单 8 字符串转换整数 (atoi) 中等 9 回文数 简单 11 盛最多水的容器...原创 2021-01-27 00:58:24 · 486 阅读 · 0 评论 -
Day14 LeetCode215 217 230(JAVA版)
目录1. 数组中的第K个最大元素(LeetCode 215 题)1.1题目1.2思路2.存在重复元素(LeetCode 217 题)2.1题目2.2思路3.二叉搜索树中第K小的元素(LeetCode 230题)3.1题目3.2思路1. 数组中的第K个最大元素(LeetCode 215 题)1.1题目1.2思路方法一自己实现ArrayList的快排方法。class Solution { public int fi...原创 2021-01-27 00:50:23 · 222 阅读 · 0 评论 -
Day13 LeetCode160 169 206(JAVA版)
1. 相交链表(LeetCode 160 题)1.1题目1.2思路方法一找到焦点我能想到的好一点的方法就是通过hashmap去进行查找,然后存储listA,遍历listB。如果找到焦点就返回焦点node,否则null。时间复杂度为m+n,空间复杂度为m。均为线性的。public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) {.原创 2021-01-26 00:53:09 · 206 阅读 · 1 评论 -
Day12 LeetCode146 148 155(JAVA版)
1. LRU 缓存机制(LeetCode 146 题)1.1题目1.2思路本题首先做缓存的过程,对键值对进行存储我们就应该想到采用hashmap存储。还需要对数据进行线性存储。进行get操作时需要进行查找,同时刷新热区数据。进行put操作也需要刷新热区数据,同时插入时超出内存应该进行删除操作后进行插入操作。完成这些操作的结构我们采用双向链表来进行存储。同时hashmap的key采用存储数据的key,value使用双向链表节点指针。1.3代码class LRUCache {.原创 2021-01-24 14:25:13 · 194 阅读 · 1 评论 -
Day11 LeetCode136 141 142(JAVA版)
目录1. 只出现一次的数字(LeetCode 136 题)1.1题目1.2思路1.3代码2.环形链表(LeetCode 141 题)2.1题目2.2思路2.3代码3.二叉树中的最大路径和(LeetCode 124题)3.1题目3.2思路3.3代码1. 只出现一次的数字(LeetCode 136 题)[只出现一次的数字 II]顺带做了 用一个方法~1.1题目1.2思路构建出现数字的hashmapHashMap&l...原创 2021-01-23 00:40:03 · 239 阅读 · 1 评论 -
Day10 LeetCode121 122 124(JAVA版)
1. 买卖股票的最佳时机(LeetCode 121 题)1.1题目1.2思路方法一暴力解法当然是二重循环,一个指针从头开始逐个遍历为i。另一个指针为i+1到末尾。找到最大的距离。但是非常不幸,这段代码超时了。不过基本解题思路是明确的。被卡住的测试用例我截图在上面……分析一下时间复杂度为什么会超时。我们循环两层,那么我们内层循环从n-1(近似看为n次)开始到1。总共有n次 。也就是n(n+1)/2次,为n2。class Solution { public int原创 2021-01-21 21:48:18 · 228 阅读 · 2 评论 -
Day8 LeetCode62 70 78(JAVA版)
1. 不同路径(LeetCode 62 题)1.1题目1.2代码class Solution { public int uniquePaths(int m, int n) { int[][] f = new int[m][n]; for (int i = 0; i < m; ++i) { f[i][0] = 1; } for (int j = 0; j < n; ++j) {原创 2021-01-19 23:15:18 · 126 阅读 · 1 评论 -
Day7 LeetCode 54 59 61(JAVA版)
Day7 LeetCode 54 59 611. 螺旋矩阵(LeetCode 54 题)1.1题目1.2思路写了写遍历矩阵的下标不难发现会以这样的规律分部 行为i 列为jj++,i++,j--,i--;这样的周期分部,同时如果之前填充过数字可以构建一个布尔类型mapk的矩阵进行判定是否到边界。有种贪吃蛇的感觉。本解法的时间空间复杂度均为m*n。所以效率极高。1.3代码class Solution { public List<Integer> spir原创 2021-01-19 00:46:35 · 167 阅读 · 1 评论 -
Day6 LeetCode 43 46 53
Day6 LeetCode 43 46 531. 字符串相乘(LeetCode 43 题)1.1题目1.2思路如果直接暴力解会出现数字越界问题,同时也不允许直接转为整数来处理。介绍一下比较巧妙的方法,就是把两个数乘法转化为多个数的乘法,比如123*456 = 123*6+123*50+123*400 这样可以把乘法进行单个数乘法以及求和。同时每次只计算我们的最后一个数字,以及进位值。不过如果对数据进行字符串拼接的方法进行计算,会导致计算量过大,这里采用一个巧妙的容器,int列表.原创 2021-01-18 00:44:19 · 130 阅读 · 0 评论 -
Day5 LeetCode 23 26 33
Day5 LeetCode 23 26 33目录Day5 LeetCode 23 26 331. 合并K个升序链表(LeetCode 23 题)1.1题目1.2思路1.3代码2.删除排序数组中的重复项(LeetCode 26 题)2.1 题目2.2 思路2.3 代码3.搜索旋转排序数组(LeetCode 33 题)3.1 题目3.2 思路3.3 代码4 小结1. 合并K个升序链表(LeetCode 23 题)1.1题目...原创 2021-01-17 01:07:50 · 194 阅读 · 2 评论 -
Day4 LeetCode 16 20 21题(java)
LeetCode刷题第四天 16/20/21题1. 最接近的三数之和(LeetCode 16题)1.1题目1.2思路首先就是三重循环的方法,emmm 这个题和15题有异曲同工之妙。解法也一致。也是双指针。然后把三个数之和简化为两个数之和。通过双指针不断逼近,然后求得最优解。1.3代码class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(n..原创 2021-01-14 23:19:57 · 165 阅读 · 1 评论 -
Day2 LeetCode 7 8 9
LeetCode刷题第二天 7/8/9题1. 整数反转(LeetCode 7 题)1.1题目1.2思路说一下思路,就是把整数通过取余然后对这个余数进行重组。不过里面有个小坑,就是溢出的问题,比如2^31这样正好翻转过来溢出了 ,这个问题也很好解决。倘若你计算的数字最后一位和反转过来的第一位不一样,不就说明溢出了。(因为数字溢出就是超过范围,然后重新排列数字。)也就是利用这个方法即可完成溢出判断,题目说给零。1.3代码public class mainDemo .原创 2021-01-12 23:44:04 · 201 阅读 · 0 评论