前言 就有要把leetcode的题刷完,每天一道题,每天进步一点点 从零打卡leetcode之day 3 题目描述: 给定一个int类型的数组,求最大子序列的和. 也就是说,从这个数组中截取一个子数组,这个子数组的元素和最大. 例如: -1 20 -4 14 -4 -2 这个数组的最大字序列和为30.即20 -4 14. 解题 1.初级版解法 对于这道题,其实我们可以采取遍历所有可能的组合,然后再比较哪种组合的和最大. 也就是说,我们可以找出所有子序列,然后逐个比较.代码如下. public i…
题目描述 给定一个字符串 s,找到 s中最长的回文子串.你可以假设 s 的最大长度为1000. 示例1 输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案. 示例2 输入: "cbbd" 输出: "bb" 解题 对于这道题,最简单的方法就是暴力求解了.对于很多算法题,我想会暴力求解是最基本的能力,但也绝不能满足于暴力,而且很多题的暴力解法都是很类似的. 这道题与其他的暴力解法一样…
前言 我靠,才坚持了四天,就差点不想坚持了.不行啊,我得把leetcode上的题给刷完,不然怕是不好进入bat的大门. 题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 .请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) .你可以假设 nums1 和 nums2 均不为空. 示例 nums1 = [1, 3] nums2 = [2] 中位数是 2.0 nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 + 3)/2…
前言 就是要把leetcode刷完,每天一道题,每天进步一点点. 从零打卡leetcode之day 2 题目描述: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储, 它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 我的想法 我靠,居然还用到了链表的知识…
前言 就是要把leetcode的题刷完,每天一道题,每天进步一点点 从零打卡leetcode之day 1 题目描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 看到这道题的第一想法,暴力暴力,能用暴力解决的事情不要和我谈其他. 于是,两个for…
Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative…
LeetCode:递增的三元子序列[334] 题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false . 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) . 示例 1: 输入: [1,2,3,4,5] 输出: true 示例 2: 输入:…
题意:给一个size大于0的序列,求最大的连续子序列之积.(有正数,负数,0) 思路:正确分析这三种数.0把不同的可能为答案的子序列给隔开了,所以其实可以以0为分隔线将他们拆成多个序列来进行求积,这样就没有0了. 接着是负数,负数如果遇到一个负数,可能反而比那个正数要大,所以正负数都要保存,遍历一次即可.在奇数个负数时,其实可能的只有2种:(1)包含最前面一个负数的序列(2)包含最后面一个负数的序列(当然不包含最前面1个,同理(1)也是). class Solution { public: in…
链接:https://leetcode-cn.com/problems/longest-common-subsequence 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列. 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串.例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde&quo…
操作日志: 起因:Nexus 7 flo 华硕平板,刷了一个CWM Recovery之后变成了砖机: 尝试1:使用CWM Recovery清除数据,开机失败 尝试2:刷入CM 11 Snapshot的zip卡刷包,并使用Recovery清除数据,开机失败 尝试3:刷入CM 11 eng自己编译的版本,并使用Recovery清除数据,开机失败 尝试4:fastboot flash boot /path/to/boot.img,并刷入 CM 11 eng自己编译的版本,并Recovery清除数据,开…
在一些机器,启动genymotion 的android5.0版模拟器时,会卡在启动界面,一直启动不了. 这是因为要求的开启虚拟选项没有打开,在第一次启动时,会有提示,但可能大家没有注意(我也没注意到,呵呵). 要解决这个问题,就需要系统的BIOS里面,把这个模拟选项打开. 选项:intel Virtualization Technology  设置为可用,enable 再重启机器就可以顺利启动5.0的模拟器了.…
这个问题目前遇到的人少,所以找到答案不容易,我也是各种细节亲测才发现的解决方案.记录下来 当uniapp用scroll-view竖向滚动时,在scrollTop为0时,下拉会卡顿. 解决方法(只需要在app-plus里加上"bounce":"none",就可以了 ,{ "path" : "components/scollTest/scollTest", "style" : { "navigatio…
题目 Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic time complexity. 分析 Note中提示让用对数的时间复杂度求解,那么如果粗暴的算出N的阶乘然后看末尾0的个数是不可能的. 所以仔细分析,N! = 1 * 2 * 3 * ... * N 而末尾0的个数只与这些乘数中5和2的个数有关,因为每出现一对5和2就会产生…
题目大意: 判断输入的数字是不是回文数.所谓回文数就是正反读都一样的数字,比如说11,121,1221这样子的数字.负数不会是回文数. 解题思路: 思路一:如果这个数是负数,则返回false,否则用一个变量记录这个数字你转后的数字,判断它和逆转前是否相等. 思路二:如果是负数或者这个数个位为0,则返回false(0除外,如果是0也返回true).否则用一个数字记录它逆转的一半,与其另一半比较,查看是否相等.(考虑数字位数的奇偶性) 解决代码: 我只写了思路二的代码,因为相对思路二的效率比思路一高…
题目: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2, 7, 11,…
题目: The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note: 0 ≤ x, y < 231. Example: Input: x = 1, y = 4 Output: 2 Explanati…
题目描述: 给定一个字符串,找出不含有重复字符的最长子串的长度. 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3. 给定 "bbbbb" ,最长的子串就是 "b" ,长度是1. 给定 "pwwkew" ,最长子串是 "wke" ,长度是3.请注意答案必须是一个子串,"pwke" 是 子序列  而不是子串.   解题过程:…
淘宝买了个Unitek的usb3.0读卡器, 用来换掉之前用了很久sks的sub2读卡器, 收到之后在Ubuntu下先测了一下, 发现识别出来的是usb2.1 lsusb -D /dev/bus/usb/002/007 Device: ID 05e3:0749 Genesys Logic, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 bDeviceClass 0 (Defined at Interface le…
题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6.示例 2: 输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray著作权归领扣网络所有.商业转载请联系官方授…
Given an integer array, your task is to find all the different possible increasing subsequences of the given array, and the length of an increasing subsequence should be at least 2 . Example: Input: [4, 6, 7, 7] Output: [[4, 6], [4, 7], [4, 6, 7], [4…
原题 A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either positive or negative. A sequence with fewer than t…
题目描述:题目链接 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4. 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可. 你算法的时间复杂度应该为 O(n2) . 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? 这个题目和最长公共子序列一样,都是可以利用动态规划来解决问题的: 可以利用常见的动态规划思路: 1:将…
Given a string s and a string t, check if s is subsequence of t. You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string, and sis a short string (<=100). A subsequence of a…
最长递增子序列的个数 给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]. 示例 2: 输入: [2,2,2,2,2] 输出: 5 解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5. 注意: 给定的数组长度不超过 2000 并且结果一定是32位有符号整数. 思路 定义 dp(n,1) cnt (n,1) 这里我用dp[i]…
最长和谐子序列 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] 输出: 5 原因: 最长的和谐数组是:[3,2,2,2,3]. 说明: 输入的数组长度最大不超过20,000. 思路: 将数组中的元素作为key,该元素出现次数作为value存入哈希表.遍历哈希表,找出最长和谐子序列. import java.util.HashMap; class…
等差数列划分II 子序列 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列. 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9 以下数列不是等差数列. 1, 1, 2, 5, 7 数组 A 包含 N 个数,且索引从 0 开始.该数组子序列将划分为整数序列 (P0, P1, ..., Pk),P 与 Q 是整数且满足 0 ≤ P0 < P1 < ... < Pk < N. 如果序列 A[P0],A[…
递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false . 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) . 示例 1: 输入: [1,2,3,4,5] 输出: true 示例 2: 输入: [5,4,3,2,1] 输出: fal…
最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4. 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可. 你算法的时间复杂度应该为 O(n2) . 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? 直接用DP求解,算法如下:时间复杂度为O(N^2) ①最优子问题 设lis[i] 表示索引为 [0...i…
题目描述 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4. 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可. 你算法的时间复杂度应该为 O(n2) . 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? 解题思路 利用动态规划和二分查找解题. 遍历一遍数组,dp[]表示目前为止的上升子序列(不一定是最长),通过二分…
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] 输出: 5 原因: 最长的和谐数组是:[3,2,2,2,3]. 说明: 输入的数组长度最大不超过20,000. 这道题问题很简单,但是一开始理解错题意,认为数组的子序列是截取数组的某一部分而不能改变其位置. 参考相关代码后发现是任意子序列.那么使用hashmap记录出现的数和其对应出现的次数,两个大…