LeetCode算法扫题系列83】的更多相关文章

原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9104582.html LeetCode算法第83题(难度:简单) 题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次.(English:Given a sorted linked list, delete all duplicates such that each element appear only once.) 示例 1: 输入: 1->1->2 输出: 1-&…
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9104677.html LeetCode算法第19题(难度:中等) 题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点.(English:Given a linked list, remove the n-th node from the end of list and return its head.) 示例: 给定一个链表: 1->2->3->4->…
我的编程开始(C) C算法编程题(一)扑克牌发牌 C算法编程题(二)正螺旋 C算法编程题(三)画表格 C算法编程题(四)上三角 C算法编程题(五)“E”的变换 C算法编程题(六)串的处理 C算法编程题(七)购物…
今天开始刷Leetcode上面的算法题.我会更新我刷题过程中提交的代码(成功和不成功的都有)和比较好的解法 第二题 Add Two Numbers 题目的意思:输入两个链表,这两个链表都是倒序的数字,相加后返回倒序的链表.比如: Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 (342 + 465 = 807) 我的解法: 思路很简单,把两个链表分别转换成数字,相加后把结果再转换成链表 # Definit…
今天的题目不是leetcode上面的.只是觉得动态规划还是不算很熟练,就接着找了点DP的题练练 最长递增子序列的长度 题目的意思:传入一个数组,要求出它的最长递增子序列的长度.例如:如在序列1,-1,2,-3,4,-5,6,-7中,最长递增序列为1,2,4,6,所以长度为4. 分析:这道题我们可以用动态规划来做.对于数组的前i个元素,记L(i)为前i个最长递增子序列的长度.我们可以得到状态转移方程:L(i) = max(L(j))+1, 其中j<i, a[j]<a[i]. 这个解法比较容易想出…
今天在刷了几道简单的动态规划后,又看了看string方面的题 第五题 Longest Palindromic Substring 题目的意思:求一个字符串的最长回文子串 分析:开始,我的想法是,现在字符串中插入特殊字符,比如'$',这样可以规避回 文串长度为奇数或偶数的讨论问题,加入特殊字符后,长度始终为奇数.然后建立一个数组,该数组记录了以每一位为中心的回文字符串的长度.解法很简单: def findmin(s): s_ = '~' + '~'.join(s) + '~' st = '' p…
从题目名字就可以看出这两道题是相似的,219是217的加强版 217:Contains Duplicate 题目 给予一个数组,判断是否有重复的元素.如果有就返回True,没有就返回False.以下是我第一次想到的方法 解题思路 遍历这个数组,建立一个字典,存储每个不同的数字的出现次数.如果某个元素的出现次数大于1,则表示有重复 class Solution: # @param {integer[]} nums # @return {boolean} def containsDuplicate(…
又到了晚上,动态规划,开刷! 第121题 Best Time to Buy and Sell Stock 题目的意思:给予一个数组price,表示特定股票在某天的股价,里面第i个数表示第i天的价格.只能交易一次(买一次+卖一次),求最大利润 分析:典型的动态规划.当我们要求到第i天为止最大的利润,就需要知道i-1天为止的最大利润,然后用第i天的股价减去(i-1)天股票最低值,然后比较即可.所以我们可以推出状态转移方程: maxProfit(i) = max(maxProfit(i-1), pri…
上次刷了五六道题,都是关于string处理的,这次想换个知识点刷一下,然后再回头刷string的题,当做复习.. 这几天主要会选择动态规划的题目,因为以前从没刷过这方面的东西,很多东西都不是很懂..就当重新学习吧~ 第198题 House Robber 题目的意思:一个抢劫者要抢劫一条街上的住户,由于每家都有报警器,连续抢劫2家就会触发报警器.现在给你一个列表,里面的元素是每家可抢劫的金额,要求在不触发报警器的情况下抢劫最多的钱 分析:这是一道典型的动态规划题,我们先分析一下. 对于每一家,抢劫…
Same Tree 题目 给予两棵二叉树,判断这两棵树是否相等(即各节点的值都一样) 解题思路 分别遍历两棵二叉树,并用列表分别存储这两棵树的节点的值,比较这两个列表就可以了 class Solution: # @param {TreeNode} p # @param {TreeNode} q # @return {boolean} def isSameTree(self, p, q): if (not p) and (not q): return True if (not p) and q:…
Longest Common Prefix 题目 给予一个列表,元素为字符串,写一个程序找出最长公共前缀 解题思路 先比较两个字符串,如果第一个字符不一样,则返回空值,比较完成后,用这个公共字符串和下一个元素继续比较,以此类推 class Solution: # @param {string[]} strs # @return {string} def longestCommonPrefix(self, strs): if not strs: return '' if len(strs) ==…
Path Sum 题目 给予一个二叉树,和一个值su,寻找是否有一个从根节点到叶节点的和为su,有则返回True,没有为False.比如: 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 hasPathSum(self, root, 22) 将返回True 节点为: class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None 解题思路 class Soluti…
问题描述: 判断一个数是否为回文数 class Solution {      public boolean isPalindrome(int x) {           if(x<0)                  return false;           int rs=0; //注意:方法的参数传入进来之后要赋值给d //下面的方法中是对d操作,x的值没有变,方便最后结果与x进行比较           int d=x;           while(d!=0){       …
题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. package Simple;import java.util.Scanner;public class Practice2 { private int i = 1; // 默认为整数,即无符号 private String sign = ""; public static void main(String[] args) { Practice2 sol = new Practice2(); sol.…
题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 我的解答: package Simple;import java.util.Arrays;/*给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标.你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组…
前言 上一篇<C算法编程题(六)串的处理> 有些朋友看过我写的这个算法编程题系列,都说你写的不是什么算法,也不是什么C++,大家也给我提出用一些C++特性去实现问题更方便些,在这里谢谢大家提的一些建议和意见,我当时写这个系列的目的不是探讨算法和C++的特性,可能是我标题写的不好吧,让大家误解了,再这里给大家说声抱歉. 大家都学过数学,做过奥数题,其实大家看看我写的前几篇文章就会发现,做这类编程题就像做奥数题一样,锻炼的是我们的逻辑思维能力,我当时写的目的也是这样.如果说用一些语言的特性去实现,…
下面题目是LeetCode算法155题: https://leetcode.com/problems/min-stack/ 题目1:最小函数min()栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取栈顶元素. getMin() -- 检索栈中的最小元素. package com.good.good.study.stack; import java.uti…
这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8,9,10,11 ......例如: 输入:3 输出:3 输入:11 输出:0 说明:序列1,2,3,4,5,6,7,8,9,10,11 ......的第11位是0,它是数字10的一部分. 注意:n为正整数且符合32位有符号整数(n <2^31)的范围. 本次解题使用的开发工具是eclipse,jd…
这是悦乐书的第320次更新,第341篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第189题(顺位题号是811).像"discuss.leetcode.com"这样的网站域名由各种子域组成.在顶级,我们有"com",在下一级,我们有"leetcode.com",在最低级别,"discuss.leetcode.com".当我们访问像"discuss.leetcode.com"这样…
这是悦乐书的第319次更新,第340篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第188题(顺位题号是806).我们要将给定字符串S的字母从左到右写成行.每行最大宽度为100个单位,如果写一个字母会导致该行的宽度超过100个单位,则会写入下一行.给出一个数组宽度,一个数组,其中widths[0]是'a'的宽度,widths[1]是'b'的宽度,widths[25]是'z'的宽度. 现在回答两个问题:S中至少有一个字符有多少行,最后一行使用的宽度是多少?将答案作为长…
这是悦乐书的第318次更新,第339篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是804).国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系列点和短划线,如下所示:"a"映射到".-","b"映射到"-...","c"映射到"-.-.", 等等. 为方便起见,下面给出了英文字母26个字母的完整表格: [".-"…
这是悦乐书的第317次更新,第338篇原创 在开始今天的算法题前,说几句,今天是世界读书日,推荐两本书给大家,<终身成长>和<禅与摩托车维修艺术>,值得好好阅读和反复阅读. 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是796).给定两个字符串A和B,在A上进行移位操作,规则是将A最左边的字符移动到最右边去.例如,如果A ='abcde',那么在A上移位一次后,它将是'bcdea'.当且仅当A在A上移位一定次数后可以变为B时返回True.…
这是悦乐书的第316次更新,第337篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第185题(顺位题号是788).如果一个数字经过180度旋转后,变成了一个与原数字不同的数,这样的数被称为好数字.数字中的每一位都必须经过旋转.旋转的规则是:0,1,8这三个数旋转后还是自身,2旋转后变为5,5旋转后变为2,6旋转后变为9,9旋转后变为6,剩下的3,4,7旋转后并不能转成其他数字,是无效的.现在给出正数N,从1到N的好数字一共有多少个?例如: 输入:10 输出:4 说明…
这是悦乐书的第315次更新,第336篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第184题(顺位题号是784).给定一个字符串S,将每个字母单独转换为小写或大写以创建另一个字符串.返回可以创建的所有可能字符串的数组.例如: 输入:S ="a1b2" 输出:["a1b2","A1b2","a1B2","A1B2"] 输入:S ="3z4" 输出:["…
这是悦乐书的第314次更新,第335篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第183题(顺位题号是783).给定具有根节点值的二叉搜索树(BST),返回树中任何两个不同节点的值之间的最小差值.示例: 给定的树[4,2,6,1,3,null,null]由下图表示: 4 / \ 2 6 / \ 1 3 输出:1 说明:请注意,root是TreeNode对象,而不是数组.该树中的任意节点最小差值为1,它发生在节点1和节点2之间,也发生在节点3和节点2之间. 注意:…
这是悦乐书的第313次更新,第334篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第182题(顺位题号是771).字符串J代表珠宝,S代表你拥有的石头.S中的每个字符都是你拥有的一种石头.计算S中有多少石头也是珠宝.J中的字符不会重复出现,J和S中的所有字符都是英文字母.字母区分大小写,因此"a"被认为是与"A"不同类型的石头.例如: 输入:J ="aA",S ="aAAbbbb" 输出:3 输入…
这是悦乐书的第312次更新,第333篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第181题(顺位题号是766).如果从左上角到右下角的每个对角线具有相同的元素,则矩阵是Toeplitz.现在给定一个M×N矩阵,当且仅当矩阵是Toeplitz时返回True.例如: 输入:矩阵= [[1,2,3,4],[5,1,2,3],[9,5,1,2]] 输出:true 说明:在上面的网格中,对角线是:"[9]","[5,5]","[1,1…
这是悦乐书的第311次更新,第332篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第180题(顺位题号是762).给定两个正整数L和R,在[L,R]范围内,计算每个整数的二进制数中1的个数,判断1的个数是否是一个素数.例如,21的二进制数是10101,其中1的个数有3个,3是一个素数.例如: 输入:L = 6,R = 10 输出:4 说明: 6 --> 110(2个1,2是素数) 7 --> 111(3个1,3是素数) 9 --> 1001(2个1,2是素数…
这是悦乐书的第281次更新,第298篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第149题(顺位题号是657).在2D平面上有一个从位置(0,0)开始的机器人.给定其移动序列,判断该机器人在完成移动后是否在(0,0)处结束.移动序列由字符串表示,字符move [i]表示其第i个移动.有效移动是R(右),L(左),U(上)和D(下).如果机器人在完成所有移动后返回原点,则返回true.否则,返回false. 注意:机器人的"朝向"无关紧要. "R…
这是悦乐书的第310次更新,第331篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第179题(顺位题号是754).你站在无限数字线的0号位置.在目的地有个target.在每次移动中,您可以向左或向右移动.在第n次移动(从1开始)期间,你可以走n步.返回到达目的地所需的最少步骤数.例如: 输入:target = 3 输出:2 说明:在第一步中,我们从0步进到1.在第二步,我们从1步骤到3. 输入:target = 2 输出:3 说明:在第一步中,我们从0步进到1.在第…