leetcode 刷题记录(java)-持续更新】的更多相关文章

最新更新时间 11:22:29 8. String to Integer (atoi) public static int myAtoi(String str) { // 1字符串非空判断 ""||" " if (str.isEmpty() || str.trim().isEmpty()) { return 0; } int index = 0; int sign = 1; int total = 0; //1检测第一个非空字符串是什么 while (str.cha…
leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 给定 nums = [2,7,11,15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回[0,1] 分析: 1.题目给出了一个整数数组和目标值,所以定义的函数就该传入这两个参数 2.不能重复使用数组中下标…
Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6-10 ---6.Z 字形变换 ---7.整数反转 ---8.字符串转换整数 (atoi) ---9.回文数 ---10.正则表达式匹配…
由于之前对算法题接触不多,因此暂时只做easy和medium难度的题. 看完了<算法(第四版)>后重新开始刷LeetCode了,这次决定按topic来刷题,有一个大致的方向.有些题不止包含在一个topic中,就以我自己做的先后顺序为准了. Array ---11.Container With Most Water 给定许多条与y轴平行的直线,求其中两条直线与x轴围成的容器的最大容量. 这道题用到了双指针的思想.我们在数轴的两端分别放置一个left指针和right指针,因为容器容量=较短边*两边…
写在前面:因为要准备面试,开始了在[LeetCode]上刷题的历程.LeetCode上一共有大约150道题目,本文记录我在<http://oj.leetcode.com>上AC的所有题目,以Leetcode上AC率由高到低排序,基本上就是题目由易到难.我应该会每AC15题就过来发一篇文章,争取早日刷完.所以这个第二篇还是相对比较简单的15道题了. 部分答案有参考网上别人的代码,和leetcode论坛里的讨论,很多答案肯定有不完美的地方,欢迎提问,指正和讨论. No.16 Climbing St…
写在前面:因为要准备面试,开始了在[LeetCode]上刷题的历程.LeetCode上一共有大约150道题目,本文记录我在<http://oj.leetcode.com>上AC的所有题目,以Leetcode上AC率由高到低排序,基本上就是题目由易到难.我应该会每AC15题就过来发一篇文章,争取早日刷完.所以这个第一篇就是最简单的15道题了. 部分答案有参考网上别人的代码,和leetcode论坛里的讨论,很多答案肯定有不完美的地方,欢迎提问,指正和讨论. No.1 Single NumberGi…
以下题号均为LeetCode题号,便于查看原题. 10. Regular Expression Matching 题意:实现字符串的正则匹配,包含'.' 和 '*'.'.' 匹配任意一个字符,"*" 匹配 '*' 之前的0个或多个字符. example: isMatch("aa","a") → false isMatch("aa","aa") → true isMatch("aaa",&…
递归 104.二叉树的最大深度 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int maxDepth(TreeNode root) { if(root==null) return 0; retu…
目录 引言 题目 1.两数之和 题目 解题笔记 7.反转整数 题目 解题笔记 9.回文数 题目 解题笔记 13.罗马数字转整数 题目 解题笔记 14.最长公共前缀 题目 解题笔记 20.有效的括号 题目 解题笔记 26.删除排序数组中的重复项 题目 解题笔记 27.移除元素 题目 解题笔记 35.搜索插入位置 题目 解题笔记 38.报数 题目 解题笔记 53.最大子序和 题目 解题笔记 67.二进制求和 题目 解题笔记 引言        虽然说前端设计的算法复杂度并不高,但是像我这种懒龙,还是…
242.有效地字母异位词 由于本题的字符串只包含 26 个小写字符,因此可以使用长度为 26 的整型数组对字符串出现的字符进行统计,并对比字母出现的次数是否一致.不再使用 HashMap. toCharArray()的用法 java中的foreach的用法 class Solution { public boolean isAnagram(String s, String t) { int[] cnts = new int[26]; for (char c : s.toCharArray())…
使用java实现链表 单向链表 双向链表 单向循环链表 双向循环链表 题目记录 160.相交链表 例如以下示例中 A 和 B 两个链表相交于 c1: A: a1 → a2 c1 → c2 → c3 B: b1 → b2 → b3Copy to clipboardErrorCopied 但是不会出现以下相交的情况,因为每个节点只有一个 next 指针,也就只能有一个后继节点,而以下示例中节点 c 有两个后继节点. A: a1 → a2 d1 → d2 c B: b1 → b2 → b3 e1 →…
(1)Linked List Cycle Total Accepted: 13297 Total Submissions: 38411 Given a linked list, determine if it has a cycle in it.   Follow up: Can you solve it without using extra space? (url:http://oj.leetcode.com/problems/linked-list-cycle/) 这一题是给定一个link…
第一题 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); int[] result = new int[2]; for (int i = 0; i < nums.length; i++) { if (map.containsKey(target - nums[i])) { resu…
题目要求 编写一个类,提供两个方法.一个可以将普通的网址编码成短网址,一个可以将短网址还原为普通网址. 参考题解 # 使用随机函数,生成短网址,保存在dict中,避免重复 import random import math import re class Codec: charbase = [x for x in "0123456789abcdefghijklmnopqrstuvwxyz"] urldict = {} longurldict = {} def get_random_ch…
一.段错误/RE 1.& 变量取地址 2.数组越界 3.爆栈, 非常可能是死循环,ruturn的边界没有处理好,或者是递归的内容里有死循环的部分. 4.线段树 逢写必错,都是build(i*2+1,tmp.mid+1,r);这里忘记加一了. 二.一些莫名其妙的逻辑错误 1.多重的if else 检查是不是有问题.写if else一定要把全部的可能情况罗列,以保证没有逻辑错误.if else 一定把全部的情况逻辑都理清,这题Debug的时候略微变了下写法,又WA了非常久.代码也贴在后面了. Deb…
本篇博客按照题号排序(带*为推荐题目) 1008 [HNOI2008]越狱 很经典的题了..龟速乘,龟速幂裸题,, 1010 [HNOI2008]玩具装箱toy* 斜率优化 基本算是裸题. 1012 最大数 单调队列/单调栈 随便搞一搞就好 (水题...) 1045 糖果传递(双倍经验请做 3293 分金币) 贪心+中位数  排序后搞一搞可过..(水题...) 1051 受欢迎的牛* tarjan (提高T1+ -- T2难度) 1106: [POI2007]立方体大作战tet* 树状数组+贪心…
@ 目录 283. 移动零 566. 重塑矩阵 485. 最大连续1的个数 240. 搜索二维矩阵 II 378. 有序矩阵中第K小的元素 645. 错误的集合 287. 寻找重复数 667. 优美的排列 II 697. 数组的度 766. 托普利茨矩阵 565. 数组嵌套 769. 最多能完成排序的块 283. 移动零 开始的想法是把零都挪到后面,看到了一种效率更高的写法,思路是先遍历一遍数组,把遇到的非零数按顺序重新复制,后面的全修改成零 public void moveZeroes(int…
题目要求 计算两个复数的乘积. 参考题解 这道题感觉很简单,主要是对复数的表达式进行解析,然后套用公式,输出结果就可以了. class Solution: def complexNumberMultiply(self, a, b): """ :type a: str :type b: str :rtype: str """ (x,y) = a.split("+") (m,n) = b.split("+")…
题目要求,题目地址 给定一个不含重复数字的数组,最大二叉树构建规则如下: 1.根是数组中最大的数字 2.左边的子树是最大数字左边的内容 3.右边的子树是最大数字右边的内容 答案 class Solution(object): def constructMaximumBinaryTree(self, nums): """ :type nums: List[int] :rtype: TreeNode """ #print(max(nums)) #pr…
bzoj 2748 一个吉他手,有一个初始音量,有一个音量最大值max. 给定n个音量变化量,从第一个变化量开始,可以选择加上或者减去变化量.途中音量不能低于0,不能超过max. 求最后能达到的最大音量是多少. #include <bits/stdc++.h> using namespace std; #define maxn 1000 + 100 int vis[maxn], a[maxn]; ; int f[maxn][maxn]; int n, bgL, mxL; int main()…
面试题3:数组中重复数字 # 使用set,时间复杂度O(n),空间复杂度O(n)class Solution(object): def findRepeatNumber(self, nums): """ :type nums: List[int] :rtype: int """ a = set([]) for num in nums: if num in a: return num a.add(num) # 桶思想,时间复杂度O(n),空间复杂度…
https://leetcode-cn.com/problems/spiral-matrix/submissions/ class Solution(object): def spiralOrder(self, matrix): """ :type matrix: List[List[int]] :rtype: List[int] """ if matrix == []: return [] results = [matrix[0][0]] ma…
6 Z 字形变换(题目链接) class Solution: def convert(self, s, numRows): """ :type s: str :type numRows: int :rtype: str """ lists = [] for i in range(numRows): lists.append('') numMids = numRows - 2 if numMids < 0: numMids = 0 for i…
1 两数之和(题目链接) class Solution: # 一次哈希法 def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ m = {} for i in range(len(nums)): minus = target - nums[i] if minus in m and i != m[minus]…
1.两数之和 可以先对数组进行排序,然后使用双指针方法或者二分查找方法.这样做的时间复杂度为 O(NlogN),空间复杂度为 O(1). 用 HashMap 存储数组元素和索引的映射,在访问到 nums[i] 时,判断 HashMap 中是否存在 target - nums[i],如果存在说明 target - nums[i] 所在的索引和 i 就是要找的两个数.该方法的时间复杂度为 O(N),空间复杂度为 O(N),使用空间来换取时间. class Solution { public int[…
题目 232.用栈实现队列 class MyQueue { private Stack<Integer> in = new Stack<>(); private Stack<Integer> out = new Stack<>(); public void push(int x) { in.push(x); } public int pop() { in2out(); return out.pop(); } public int peek() { in2ou…
题目描述: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换. 官方题解写的很简单移动,换个想法,如果用集合的话,该如何实现这道题目呢? 思路:如果我们把数组中的数据放到集合里的话,那我们肯定要先设定一个反转集合元素的函数, 然后截取集合元素的一个子集合,将其放入到反转函数中,再将剩余的元素…
DP刷题记录 (本文例题目前大多数都选自算法竞赛进阶指南) TYVJ1071 求两个序列的最长公共上升子序列 设\(f_{i,j}\)表示a中的\(1-i\)与b中色\(1-j\)匹配时所能构成的以\(b_j\)结尾的最长公共上升子序列的长度 考虑转移 \[ f_{i,j} = \left\{\begin{array}{l}{f_{i - 1,j}\quad \quad \quad \quad \quad \quad\quad(a_i \not= b_j)} \\ {\max_{k = 1}^{…
昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日截止,共有204人参加,根据投票结果显示,大多数人希望通过刷LeetCode能够提高代码水平,在工作中和面试中有帮助,然而有一半人没有接触过Leetcode,一半人接触过,但只刷了一点.几乎所有投票的人刷题的数量都小于100题,说明大家对刷题的认识和热情都还比较浅,可能是因为刷题比较枯燥,又不能马上…
Author       :  叨陪鲤 Email         : vip_13031075266@163.com Date          : 2021.01.23 Copyright : 未经同意不得转载!!! Version    : 第一章 二分法 Reference:<LeetCode刷题笔记之模板整理> 目录 1. 二分法 1.1 什么是二分查找 1.2 如何识别二分法 1.3 二分法模板 1.3.1 模板一 1.3.2 Lc69:x的平方根 1.3.3 Lc374:猜数大小…