算法进阶之Leetcode刷题记录】的更多相关文章

目录 引言 题目 1.两数之和 题目 解题笔记 7.反转整数 题目 解题笔记 9.回文数 题目 解题笔记 13.罗马数字转整数 题目 解题笔记 14.最长公共前缀 题目 解题笔记 20.有效的括号 题目 解题笔记 26.删除排序数组中的重复项 题目 解题笔记 27.移除元素 题目 解题笔记 35.搜索插入位置 题目 解题笔记 38.报数 题目 解题笔记 53.最大子序和 题目 解题笔记 67.二进制求和 题目 解题笔记 引言        虽然说前端设计的算法复杂度并不高,但是像我这种懒龙,还是…
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指针,因为容器容量=较短边*两边…
最新更新时间 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]上刷题的历程.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…
递归 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)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…
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 →…
题目要求 编写一个类,提供两个方法.一个可以将普通的网址编码成短网址,一个可以将短网址还原为普通网址. 参考题解 # 使用随机函数,生成短网址,保存在dict中,避免重复 import random import math import re class Codec: charbase = [x for x in "0123456789abcdefghijklmnopqrstuvwxyz"] urldict = {} longurldict = {} def get_random_ch…
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]…
@ 目录 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…
面试题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.两数之和 可以先对数组进行排序,然后使用双指针方法或者二分查找方法.这样做的时间复杂度为 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 的整数倍,那么请将最后剩余的节点保持原有顺序. 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换. 官方题解写的很简单移动,换个想法,如果用集合的话,该如何实现这道题目呢? 思路:如果我们把数组中的数据放到集合里的话,那我们肯定要先设定一个反转集合元素的函数, 然后截取集合元素的一个子集合,将其放入到反转函数中,再将剩余的元素…
$ 2019 $ 暑期刷题记录: $ POJ~1952~~BUY~LOW, BUY~LOWER: $ (复杂度优化) 题目大意:统计可重序列中最长上升子序列的方案数. 题目很直接的说明了所求为 $ LIS $ 的方案数 但是题目给出的元素是会重复的,结果需要去重 用 $ n^2 $ 的动态规划再另建数组记录方案可以秒杀 如果要优化复杂度就必须用求 $ LIS $ 的 $ nlogn $ 算法,其中树状数组符合要求 $ POJ~1934~~Trip: $ (方案输出) 题目大意:输出两个序列中最长…
贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配   17.8% 困难 45 跳跃游戏 II   25.5% 困难 55 跳跃游戏   30.6% 中等 122 买卖股票的最佳时机 II C#LeetCode刷题之#122-买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II) 48.8% 简单 134 加油站   40.0% 中等 135 分发糖果   33.0% 困难 316 去除重复字母   21.6% 困难 321 拼接最大数   20…
分治算法篇 # 题名 刷题 通过率 难度 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30.9% 困难 23 合并K个排序链表   39.4% 困难 53 最大子序和 C#LeetCode刷题之#53-最大子序和(Maximum Subarray)-该题包含分治讨论 38.4% 简单 169 求众数 C#LeetCode刷题之#169-求众数(Majority Element) 52.3…
攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.241.244:51461/1.php 为啥?查看网络 访问111.200.241.244,响应状态码是302,HTTP状态码302 表示临时性重定向,所以会被重定向到服务器希望我们访问的页面,即111.200.241.244/1.php HTTP状态码相关知识: 分类 分类描述 1** 信息,服务器…
大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode 来保持手感,但有不少人反馈刷题效率很低,今天笔者抽空整理了 三份 分别来自 谷歌的高畅.前阿里的霜神和灵魂机器 的刷题手册,以供大家参考,希望对大家无有所帮助. 一. A LeetCode Grinding Guide (C++ Version) 作者:谷歌的高畅 背景:作者在美国卡内基梅隆大学攻读…
昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日截止,共有204人参加,根据投票结果显示,大多数人希望通过刷LeetCode能够提高代码水平,在工作中和面试中有帮助,然而有一半人没有接触过Leetcode,一半人接触过,但只刷了一点.几乎所有投票的人刷题的数量都小于100题,说明大家对刷题的认识和热情都还比较浅,可能是因为刷题比较枯燥,又不能马上…
本文接着上一篇文章<LeetCode刷题总结-数组篇(上)>,继续讲第二个常考问题:矩阵问题. 矩阵也可以称为二维数组.在LeetCode相关习题中,作者总结发现主要考点有:矩阵元素的遍历.矩阵位置的旋转.矩阵行或列次序的交换.空间复杂度为O(1)等.本期共12道题,2道简单题,8道中等题,2道困难题. 例1是杨辉三角的一个延申题,是一道非常经典的矩阵习题,本题理想解法是动态规划,但是也可以采用递归来求解. 例2是一道顺时针访问矩阵元素的习题,在不少面试题中有见到. 例3.例4和例5则强调如果…
本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17题) LeetCode刷题总结-数组篇(中),矩阵问题(共12题) LeetCode刷题总结-数组篇(番外),思维转换类型问题(共7题) 本系列50道题是作者在LeetCode题库数组标签中包含的202道题中,按照解答考点分类归纳总结的题型.解法仅供参考,主要在于题目和考点的分类.希望对准备刷Lee…