自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

转载 128.最大连续序列

方法1:排序时间复杂度O(nlogn),不满足要求,但能通过,比较好想思路从小到大排序遍历数组,比较相邻的两项,如果相同,则跳过,继续遍历下一项如果 当前项+1 等于 下一项,说明遇到连续项,count +1否则,说明连续中断,将 count 重置为 1方法1 代码var longestConsecutive = (nums) => { if (nums.length === 0) return 0 nums.sort((a, b) => a - b...

2020-06-07 16:10:16 211

转载 面试题64. 求1+2+…+n

求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。for循环可以用递归来实现,if可以用短路定理正常递归: int sumNums(int n) { return n == 0 ? 0 : n + sumNums(n - 1); }转换 public int sumNums(int n) { boolean flag = n > 0 &...

2020-06-02 08:10:54 260

转载 696.计数二进制子串

给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-binary-substrings著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2020-06-02 07:37:48 134

转载 75.颜色的分类

给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-colors著作权归领扣网络所有。商业转载请联系官方授权..

2020-06-01 23:25:49 202

转载 1431.拥有最多糖果的孩子

给你一个数组candies和一个整数extraCandies,其中candies[i]代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的extraCandies个糖果分配给孩子们之后,此孩子有 最多的糖果。注意,允许有多个孩子同时拥有 最多的糖果数目。初解思路:递归找到最大值,然后如果当前值加上额外的糖果可以达到最大值,那么就满足class Solution { public int max; public List<...

2020-06-01 22:13:24 113

原创 桥接模式

Bridge pattern,结构型设计模式。将抽象部分和实现部分分离,使他们都可以独立的进行变化。适用场景不一定是抽象和实现的关系,两者各自为一个维度,互相变化不受影响,就可以使用桥接实现上:抽象类中持有一个接口 ,抽象类可以扩展出一个维度的不同实现,而持有的接口又有不同的实现,二者可以组合出不同的模式,用户可以使用不同的抽象类实现并为其设置不同的接口实现比如TextView等继...

2019-12-28 22:21:58 81

原创 外观模式

外观模式:要求一个子系统的外部与其内部的通讯必须通过一个统一的对象进行,facade模式(又名门面模式)提供的一个高层次的接口,使得子系统更易于使用。是封装sdk的常用手段。他的实现比较简单,提供一个统一的接口对外提供服务,外部通过一个类就可以调用内部的一个或多个子系统的功能栗子:手机可以调用相机系统,也可以调用电话系统,还可以同时调用两个系统实现视频通话,用户只需通过手机这个外观类操...

2019-12-28 17:16:38 62

原创 mvc/mvp/mvvm的总结

MVC MVP MVVM Model 典型的mvc中view监听model中数据的改变,他们有耦合 m和v之间没有耦合,主要负责提供数据 封装数据,通过Binder监听数数据改变 View 主要是ui相关的逻辑,为了方便查询数据和监听数据变化,和model之间有耦合 v和p之间存在联系 除了处理ui,还通过binde...

2019-12-28 13:58:22 66

原创 6. Z 字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函...

2019-12-22 17:01:25 65

转载 8.字符串转换整数 (atoi)

请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...

2019-12-22 11:47:35 62

原创 9. 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。首先负数都不是排除,然后倒序取一半进行对比,避免溢出public class Solution { public boo...

2019-12-22 10:31:04 670

原创 21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4遍历/** * Definition for singly-linked list. * public class ListNode { * i...

2019-12-21 22:19:27 65

转载 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 ...

2019-12-08 16:47:27 84

原创 2. 两数相加

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> ...

2019-12-08 13:38:28 67

原创 1221. 分割平衡字符串

在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。给出一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。 这道题的意图是让左右中l和r的数...

2019-12-07 19:44:46 93

原创 760. 找出变位映射

给定两个列表AandB,并且B是A的变位。B是A的变位的意思是B由A中的元素随机排列生成。我们希望找出一个从A到B的索引映射P。一个映射P[i] = j的意思是A中的第i个元素出现于B中的第j个元素上。列表A和B可能出现重复元素。如果有多于一种答案,输出任意一种。例如,给定A = [12, 28, 46, 32, 5...

2019-12-07 18:43:53 94

原创 339-嵌套列表权重和

给定一个嵌套的整数列表,请返回该列表按深度加权后所有整数的总和。每个元素要么是整数,要么是列表。同时,列表中元素同样也可以是整数或者是另一个列表。输入: [[1,1],2,[1,1]]输出: 10 解释: 因为列表中有四个深度为 2 的 1 ,和一个深度为 1 的 2。递归处理class Solution { public int depthSum(List&lt...

2019-12-07 18:21:35 117

原创 1266. 访问所有点的最小时间

平面上有n个点,点的位置用整数坐标表示points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。你可以按照下面的规则在平面上移动:每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。必须按照数组中出现的顺序来访问这些点。输入:points = [[1,1],[3,4],[-1,...

2019-12-07 18:05:28 69

原创 237. 删除链表中的节点

删除当前节点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public void delete...

2019-12-07 17:52:05 51

原创 1108. IP 地址无效化

给你一个有效的IPv4地址address,返回这个 IP 地址的无效化版本。所谓无效化IP 地址,其实就是用"[.]"代替了每个"."。输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1" public String defangIPaddr(String address) { return address.replace...

2019-12-07 17:41:14 78

原创 1165. 单行键盘

我们定制了一款特殊的力扣键盘,所有的键都排列在一行上。我们可以按从左到右的顺序,用一个长度为 26 的字符串 keyboard (索引从 0 开始,到 25 结束)来表示该键盘的键位布局。现在需要测试这个键盘是否能够有效工作,那么我们就需要个机械手来测试这个键盘。最初的时候,机械手位于左边起第一个键(也就是索引为 0 的键)的上方。当机械手移动到某一字符所在的键位时,就会在终端上输出该...

2019-12-07 16:22:22 79

转载 771. 宝石与石头

给定字符串J代表石头中宝石的类型,和字符串S代表你拥有的石头。S中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J中的字母不重复,J和S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。输入: J = "aA", S = "aAAbbbb"输出: 3S和J最多含有50个字母。 J中的字符不重复。方法1:...

2019-12-07 15:44:39 56

原创 1119.删去字符串中的元音

给你一个字符串S,请你删去其中的所有元音字母('a','e','i','o','u'),并返回这个新字符串。示例 1:输入:"leetcodeisacommunityforcoders"输出:"ltcdscmmntyfrcdrs"示例 2:输入:"aeiou"输出:""提示:S仅由小写英文字母组成。 1 <= S.length <= 100...

2019-12-07 15:31:25 201

转载 119. 杨辉三角 II

给定一个非负索引k,其中k≤33,返回杨辉三角的第k行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]解法1:第n行第k列的值,可以通过通项公式:(n-1)! / (k-1)!(n-k)! 计算得到对其进行化简 (n-1)*(n-2)*...(n-k)/(k-1)!直接求阶乘注意是否超出类型范围class...

2019-12-07 15:18:40 92

原创 283. 移动零

给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。输入: [0,1,0,3,12]输出: [1,3,12,0,0]class Solution { public void moveZeroes(int[] nums) { if(nums == null || nums.length == 0) { ...

2019-12-01 21:53:59 98

原创 26. 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素示例2:...

2019-12-01 21:36:27 58

原创 557. 反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。解法1:直接找到每个单词,然后反转每个单词public clas...

2019-12-01 18:10:24 55

原创 186. 翻转字符串里的单词 II

给定一个字符串,逐个翻转字符串中的每个单词。示例:输入: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]输出: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]注意:单词的定义是不包含空格的一系列字符输入字符串中不...

2019-12-01 17:33:04 198

原创 151. 翻转字符串里的单词

给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输...

2019-12-01 17:26:59 56

原创 189. 旋转数组

给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-100,3,9...

2019-12-01 11:17:16 56

原创 485. 最大连续1的个数

给定一个二进制数组, 计算其中最大连续1的个数。输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.输入的数组只包含0和1。 输入数组的长度是正整数,且不超过 10,000。class Solution { public int findMaxConsecutiveOnes(int[] nums) { ...

2019-11-30 19:34:51 61

转载 27. 移除元素

给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素给定 nums = [0,1,2,2,3,0,4,2], val = 2,函数应该返回新的长度 5, 并且 nums 中的前...

2019-11-30 19:19:10 54

转载 167. 两数之和 II - 输入有序数组

给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。输入: numbers = [2, 7, 11, 15], target = ...

2019-11-30 18:54:47 59

原创 344. 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]class Solution...

2019-11-26 22:58:52 58

原创 67. 二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"初解:class Solution { public String addBinary(String a,...

2019-11-24 23:17:46 124

原创 118. 杨辉三角

给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]一、初解思路class Solution { public List<List<Integer&gt...

2019-11-24 21:24:19 68

原创 54.螺旋矩阵

给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]...

2019-11-24 20:41:14 98

原创 【练习笔记】剑指offer-输出n位数全排列

public class printBigNum { public static void pringBig(int n){ if(n<=0){ return; } char [] num = new char[n]; // for(int i=0;i<=9;i++){// num[0] = (char) (i+ '0');// printNext(num,n

2015-08-02 13:19:48 270

原创 【练习笔记】剑指offer-数的整次方

【问题】给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。【答案】public class Solution { public double Power(double base, int exponent) { if(exponent==0){ return 1.0;

2015-08-02 11:47:05 233

原创 【练习笔记】剑指offer-面试题10 :二进制中1的个数

【问题】输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。【答案】public class Solution { public int NumberOf1(int n) { int count =0; int s = 1; for(int i=0;i<32;i++){ if((n &

2015-08-02 10:58:26 252

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除