leetcode

leetcode 165 Compare Version Numbers python

☆樱花仙子☆ 提交于 2020-04-11 18:03:46
纯属吐槽。。那坑爹的题目,不过也有可能是我e文没看太仔细吧 原题目 Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0. You may assume that the version strings are non-empty and contain only digits and the . character. The . character does not represent a decimal point and is used to separate number sequences. For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision. Here is an example of version numbers ordering: 0.1 < 1.1 < 1.2 < 13.37 Credits: Special

LeetCode:Compare Version Numbers

会有一股神秘感。 提交于 2020-04-11 18:02:58
1、题目名称 Compare Version Numbers(比较版本号) 2、题目地址 https://leetcode.com/problems/compare-version-numbers/ 3、题目内容 英文:Compare two version numbers version1 and version2 . If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0. 中文:比较两个版本version1和version2,如果version1晚于version2,则返回1,如果version1早于version2,则返回-1,其他情况下返回0 4、解题方法 本题的解题思路就是,先将两个版本号按“.”分段,然后逐段比较。需要说明的是本题要考虑一个版本号与另一个版本号的前半段完全相同的情况(如“1.0”和“1.0.1”中“1.0.1”较大,“1.0”和“1.0.0”一样大)。Java代码如下: /** * 功能说明:LeetCode 165 - Compare Version Numbers * 开发人员:Tsybius2014 * 开发时间:2015年9月18日 */ public class Solution { /** * 比较版本号 * @param

[leetcode] String to Integer (atoi)

亡梦爱人 提交于 2020-04-10 08:19:57
Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases. Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front. Requirements for atoi: The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or minus sign followed by as

leetcode -- String to Integer (atoi)

久未见 提交于 2020-04-10 08:19:38
String to Integer (atoi) Description Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases. Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front. Requirements for atoi: The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional

LeetCode 55 && LeetCode 45

感情迁移 提交于 2020-04-08 12:56:30
https://leetcode-cn.com/problems/jump-game/ 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。 https://leetcode-cn.com/problems/jump-game-ii/ 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。 说明: 假设你总是可以到达数组的最后一个位置。 其中45题是由于看到其他人的面经才想着去看看的。。结果被虐的一塌糊涂,最后要靠看题解才能明白整个程序的运行过程。。。 对于55题

leetcode刷题笔记五 最长回文子串 Scala版本

可紊 提交于 2020-04-07 17:36:17
leetcode刷题笔记五 最长回文子串 Scala版本 源地址: leetcode刷题笔记五 最长回文子串 Scala版本 问题描述 Given a string s , find the longest palindromic substring in s . You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" Note: "aba" is also a valid answer. Example 2: Input: "cbbd" Output: "bb" 简要思路分析: 1.暴力法 针对以S串中任一字符开头的满足所有要求的子串进行判断,时间复杂度为O(n^3). object Solution { def longestPalindrome(s: String):String = { var length = 0 var maxLength = 0 var start = 0 if (s.isEmpty) return "" if (s.length == 1) return s //if (s.length == 2 && s == s.reverse) return s for (i <- 0 until s.length) { for

LeetCode 48. 旋转图像

半城伤御伤魂 提交于 2020-04-07 15:31:58
我的LeetCode: https://leetcode-cn.com/u/ituring/ 我的LeetCode刷题源码[GitHub]: https://github.com/izhoujie/Algorithmcii LeetCode 48. 旋转图像 题目 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在__原地__旋转图像,这意味着你需要直接修改输入的二维矩阵。__请不要__使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ], 原地旋转输入矩阵,使其变为: [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11] ] 来源:力扣(LeetCode) 链接: https://leetcode-cn.com/problems/rotate-image 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 解题思路 本题实际不难

leetcode1405

非 Y 不嫁゛ 提交于 2020-04-06 09:47:19
在这三年时间中,做了不少的算法题目,leetcode也已经做到700题了,我觉得差不多了。 虽然和算法的大牛相比还有很大的差距,但对我自己的情况来说,已经算是达到了我的上限水平了。 我不想强求自己的算法能力再进一步提高了。感谢自己这三年的坚持,让我更有信心面对工作中的问题和挑战。 我想我应该抽出时间,对做过的题目,按照类别做一些复习,争取维持现在的算法水平,新的题目就随缘吧。 下面这道题是这周的周赛的一道中等难度的题目,这种题对我来说有点偏难,作为纪念性的第700题,我还是别自己费劲去弄了,参考一下高手的答案吧,哈哈哈。 第一种方案,使用堆: 1 from heapq import heappush, heappop 2 class Solution: 3 def longestDiverseString(self, a: int, b: int, c: int) -> str: 4 max_heap = [] 5 if a != 0: 6 heappush(max_heap, (-a, 'a')) 7 if b != 0: 8 heappush(max_heap, (-b, 'b')) 9 if c != 0: 10 heappush(max_heap, (-c, 'c')) 11 s = [] 12 while max_heap: 13 first, char1 =

LeetCode Go 并发题详解:交替打印字符串

有些话、适合烂在心里 提交于 2020-04-06 09:47:05
原文地址: https://mp.weixin.qq.com/s/K032xlARjiyS8ecJrqZXaA 本题 LeetCode 链接: https://leetcode.com/problems/fizz-buzz-multithreaded/ 本题题目 给定一个数列从 1 ~ n,依序输出,但是: 如果 n 可以被 3 整除,输出 "fizz" 如果 n 可以被 5 整除,输出 "buzz" 如果 n 同时可以被 3 与 5 整除,输出 "fizzbuzz" 实战要求:使用 4 个执行线程实现一个多执行线程版本。一个 FizzBuzz 的 instance 要被传递到以下四个执行线程中: Thread A 会调用 fizz() 以检查 n 是否可以被 3 整除?若可以就输出 fizz Thread B 会调用 buzz() 以检查 n 是否可以被 5 整除?若可以就输出 buzz Thread C 会调用 fizzbuzz() 以检查 n 是否可以被 3, 5 整除?若可以就输出 fizzbuzz Thread D 会调用 number() 照常输出原本数字 n 本题考核难点?判断责任去中心化! 我一开始认为「这题没什么难的嘛~还不就那些套路再用一次!」,所以最早的实现版本,是写了一个中心控管的 goroutine,判断整除条件后,再把输出任务透过 channel

LeetCode 926. Flip String to Monotone Increasing (将字符串翻转到单调递增)

流过昼夜 提交于 2020-04-06 05:27:08
题目标签:Array   为了实现单调递增,需要把某些0变成1,或者某些1变成0,而且要返回的是“最少的反转次数”,这里要分两种情况:   1. 当 i - 1 是0: 那么 i 这个数字是0 或者 1 的话 都是递增;   2. 当 i - 1 是1: 那么 i 需要是 1 才能 继续保持递增。   利用动态规划,设 dp0 和 dp1 两个 array, dp0 以 i - 1 是 0 来记录;dp1 以 i - 1 是 1 来记录,具体看code。       Java Solution: Runtime: 5 ms, faster than 27.11% Memory Usage: 39.6 MB, less than 20.00 % 完成日期:4/04/2020 关键点:DP class Solution { public int minFlipsMonoIncr(String S) { int[] dp0 = new int[S.length()]; int[] dp1 = new int[S.length()]; dp0[0] = S.charAt(0) == '0' ? 0 : 1; dp1[0] = S.charAt(0) == '1' ? 0 : 1; for(int i = 1; i < S.length(); i++) { dp0[i] = dp0[i-1]