自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Python RGB常用颜色

RGB常用颜色RGB常用颜色列表

2020-07-28 10:13:24 9738

原创 Java leetcode 二进制求和

二进制求和题目概述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例1输入: a = “11”, b = “1”输出: “100”示例2输入: a = “1010”, b = “1011”输出: “10101”解题思路:新建StringBuilder() res;对a、b循环,让a、b两字符串从尾部开始相加;a–,b–将尾部相加结果存入res中,若值nums%2 == 0,需要进位;最后将res进行反转,即为二进

2020-07-27 06:29:55 112

原创 Java leetcode 外观数列

外观数列题目描述给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。示例:111 描述前一项:1个121 描述前一项:2个11211 描述前一项:1个2,1个1111221 描述前一项:1个1,1个2,2个1解题方法:通过递归来进行求解如图所示:代码实现:class Solution { public String countAndSay(int n){

2020-07-27 05:38:10 131

原创 Java leetcode 两地调度

两地调度题目描述公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个人去 B 市,费用为 50。第四个人去 B 市,费用为 20。最低总费用为 10 + 30 + 50 +

2020-07-26 02:23:13 141

原创 Java leetcode 最长上升子序列

最长上升子序列题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。方法:动态规划求解代码实现:public class Solution { public int lengthOfLIS(int[] nums) { if(nums.length == 0) return 0; int[] dp = ne

2020-07-24 00:39:38 139

原创 Java leetcode 乘积最大子数组

乘积最大子数组题目描述给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题方法:判断数组长度len,若为len=0,return 0,反之,执行下一步;定义二维数组,存储连续数值之间乘积的大小int[][]

2020-07-24 00:04:04 122

原创 Java leetcode 奇偶链表

奇偶链表题目描述给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例2输入: 2->1->3->5->6-

2020-07-22 06:22:28 99

原创 Java leetcode移除链表元素

移除链表元素题目描述删除链表中等于给定值val的所有节点。示例1输入:1->2->4->3->2->5->2 val=2输出:1->4->3->5示例2输入:1->1->1->1->4->5 val = 1输出:4->5解题方法:leetcode官方解题思路,使用哨兵节点方法代码实现:/** * Definition for singly-linked list. * p

2020-07-22 01:50:56 113

原创 Java leetcode 仅含1的子串数

仅含1的子串数题目概述给你一个二进制字符串 s(仅由 ‘0’ 和 ‘1’ 组成的字符串)。返回所有字符都为 1 的子字符串的数目。由于答案可能很大,请你将它对 10^9 + 7 取模后返回。示例1输入:s = “0110111”输出:9解释:共有 9 个子字符串仅由 ‘1’ 组成“1” -> 5 次“11” -> 3 次“111” -> 1 次解题方法找到连续为1的字符串的长度;通过长度计算出字符串组合的数目;依次遍历求和,得出最终结果;代

2020-07-21 07:01:16 248

原创 Java leetcode 相交链表

相交链表题目概述编写一个程序,找到两个链表相交的起点示例输入:ListA = 4–>1–>8–>4–>5 ListA = 5–>0–>1–>8–>4–>5输出:8题解如图所示:将链表拼接起来 形成 ListA----->ListB ListB------>ListA进行循环 直到ha == hbreturn ha;代码实现/** * Definition for singly-linke

2020-07-20 06:07:58 107

原创 Java leetcode 62 不同路径

不同路径题目概述对于一个m*n的表格,从Start开始,每次只能向下或者向右移动一次,试问,到达End共有多少条路径。(m是列,n是行)示例:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 -> 向右 -> 向右算法解析1如图所示:表格中是(0,0) 到(m,n)的所有路径,如图:m=3,n=2 的路径为3注意黄

2020-07-16 07:05:54 134

原创 Java leetcode 旋转链表

旋转链表题目描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例1输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例2输入: 0->1->2

2020-07-16 05:39:50 100

原创 Java 使用递归方法反转链表

单链表反转1.单链表整体反转算法代码实现:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ // 单链表整体递归反转public ListNode reverse(ListNode head){ if(head.next == null)

2020-07-15 12:59:48 620

原创 Java leetcode K次取反后最大化的数组和

K次取反后最大化的数组和题目描述给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(可多次选择一个索引i的值)以这种方式修改数组后,返回数组可能的最大和。示例1:输入:A = [4,2,3], K = 1输出:5解释:选择索引 (1,) ,然后 A 变为 [4,-2,3]。示例2:输入:A = [2,-3,-1,5,-4], K = 2输出:13解释:选择索引 (1, 4) ,然后 A 变为 [

2020-07-15 06:22:00 146

原创 Java Leetcode 将数组分成和相等的三部分

将数组分成和相等的三部分题目描述给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1] 就可以将数组三等分。示例1:输入:[0,2,1,-6,6,-7,9,1,2,0,1]输出:true解释:0 + 2 +

2020-07-15 05:21:01 228

原创 leetcode java算法 完美数

完美数:题目描述:对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。给定一个 整数 n, 如果他是完美数,返回 True,否则返回 False示例1:输入: 28 (完全数)输出: True解释: 28 = 1 + 2 + 4 + 7 + 14题解完美数定义:维基百科:https://zh.wikipedia.org/wiki/%E5%AE%8C%E5%85%A8%E6%95%B0目前尚未发现奇完全数,所以奇数不是完全数完全数一定是偶数,通过fo

2020-07-11 05:30:58 253

原创 Java算法 914 卡牌分组

卡牌分组题目描述给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例1:输入:[1,2,3,4,4,3,2,1]输出:true解释:X=2 分组为 [1,1],[2,2],[3,3],[4,4]示例2:输入:[1,1,1,2,2]输出:false;解释:无满足要求的X示例3:输入:[1]

2020-07-10 06:10:15 151

原创 LeetCode 01.08 零矩阵

零矩阵题目描述编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例输入:matrix = [ [1,1,1], [1,0,1], [1,1,1] ] 输出:matrix = [ [1,0,1], [0,0,0], [1,0,1] ]方法:首先需要找到数组元素为0的下表的位置,并记录下来;记录时行、列下标可分开记录;对行处理时,将该行所有列赋值为0;对列处理时,将该列所有的行赋值为0;

2020-07-08 08:21:02 94

原创 LeetCode 旋转矩阵 java实现

旋转矩阵题目描述:给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例给定数组:matrix = [ [1,2,3], [4,5,6], [7,8,9] ]原地旋转90度:matrix = [ [7,4,1], [8,5,2], [9,6,3] ]解题思路当能使用额外内存空间时,算法较为简单,

2020-07-08 07:07:06 378

原创 LeetCode 01.05 一次编辑

一次编辑题目描述字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例:输入:first = “aple” second = “ple”输出:true解题思路:比较字符串的长度;若Math.abs(first.length()-second.length())>1,返回false.正向寻找字符串中首个不同字符所在的下标位置first1, first2;逆向查找字符串中首个不同字符所在的下标

2020-07-07 02:07:52 212

原创 LeetCode返回倒数第k个节点值

返回倒数第k个节点要求:实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。给定的 k 保证是有效的。示例:输入:1–>2–>3–>4–>5 , k=2输出:4解题方法:方法1:先遍历链表,统计链表的总长度top;定义整数sut,使得sut=top-k+1,计算出正向所指定的节点;通过循环进行遍历,找到sut指定节点,输出该节点的值。方法2:使用双指针进行求解;开始时,p=head, q=head(p、q均指向头节点

2020-07-06 08:06:22 345

原创 LeetCode 02.01 移除重复节点

移除重复节点要求:编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例:输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]代码实现:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution {

2020-07-06 07:18:00 120

原创 LeetCode 字符轮转

字符轮转要求:给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成。举例:输入:s1 = “abcdefg” s2 = “cdefgab”输出:true (旋转 ab cdefg 将ab旋转至cdefg右侧 满足要求。)解题思路首先判断s1和s2字符串长度是否等长,若不等,直接返回false在等长的前提下,进行判断:a. 对s1或s2对自身进行再次拼接,如s1 = s1+s1;b. 使用java.lang.String.contains()方法来进行判断:

2020-07-06 06:46:56 78

原创 LeetCode面试题 回文排列

LeetCode 回文排列题目描述:给定一字符串,编写函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。示例:输入:abcdcba输出:bacdcab、acbdbca、cbadabc等思路:由回文数的定义可知,若字符串为回文数,则有以下定义:1:字符个数全为偶数2:字符个数中最多只有一个为奇数例1:字符串"abcdcba",其中a:2 b:2 c:2 d:1例2:字符"abcddcba", 其中a:2 b:2 c

2020-07-06 06:00:49 156

原创 LeeCode 面试题 08.01

LeeCode 面试题 08.01题目描述三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。示例1.输入 n=3,则有4种上楼梯的方式:(1,1,1)(1,2)(3)(2,1)2.输入n=4,则有6种上楼梯的方式:(3,1)(1,3)(1,2,1)(1,1,2)(2,1,1)(1,1,1,1)解题思路三步问题,采用动态规划进行计算,对于n层楼梯的走法,可以分为三种情况:1.

2020-06-29 01:42:30 120

空空如也

空空如也

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

TA关注的人

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