自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes总结

Kubernetes提供了强大的服务编排能力,微服务化应用的每一个组件都以Service进行抽象,组件和组件之间只需要访问Service即可以互相通信,而无须感知组件的集群变化。5) kubelet:负责调度到对应节点的 pod 生命周期管理,执行任务并将 pod 状态报告给主节点的渠道,通过容器运行时(拉取镜像、启动和停止容器等)来运行这些容器。它还会定期执行被请求的容器的健康探测程序。2) ETCD:这是一个强大的、稳定的、高可用的键值存储,被 Kubernetes 用于长久储存所有的 API 对象。

2024-02-06 00:13:35 424

原创 组合总和(Java)

给一个无重复元素的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有不同组合 ,并以列表形式返回。可以按任意顺序返回这些组合。candidates 中的同一个数字可以无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], target = 7输出:[[2,2,3]

2021-12-19 12:11:42 683

原创 搜索旋转排序数组(Java)

整数数组 arr 按升序排列,数组中的值 互不相同 。在传递给函数之前,arr 在预先未知的某个下标 k(0 <= k < arr.length)上进行了 旋转,使数组变为 [arr[k], arr[k+1], ..., arr[n-1], arr[0], arr[1], ..., arr[k-1]](下标 从 0 开始 计数)。例如, [1,2,3,4,5,6,7] 在下标 3 处经旋转后可能变为?[4,5,6,7,1,2,3] 。给旋转后的数组 arr 和一个整数 target ,如果

2021-12-19 11:00:45 549

原创 单词搜索(Java)

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCFD"输出:true示例 2

2021-12-12 10:15:42 415

原创 重排链表(Java)

给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → ...不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[1,4,2,3]示例 2:输入:head = [1,2,3,4,5]输出:[1,5,2,4,3]package com..

2021-12-11 21:56:16 559

原创 反转整数(Java)

将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回0(标记为32位整数)。如:输入:123输出:321输入:-134输出:-431package com.loo;public class ReverseInteger { public static void main(String[] args) { int num = 413; System.out.println(reverseInteger(num)); } public static int rev

2021-12-11 16:25:07 381

原创 落单的数(Java)

给出 2 * n + 1 个数字,除其中一个数字之外其他每个数字均出现两次,给出的 2 * n + 1 个数字不包含整数最小值,找到这个数字,如没有则返回整数最小值。package com.loo;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;public class SingleNumber

2021-12-11 11:33:46 213

原创 颜色分类(Java)

给定一个包含红色、绿色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、绿色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、绿色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:输入:nums = [0]输出:[0]示例 4:输入:nums = [1]输出:[1]提示: n == nu...

2021-12-03 11:30:52 1022

原创 加油站(Java)

在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。从其中的一个加油站出发,开始时油箱为空。如果可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3,4,...

2021-11-16 15:11:01 143

原创 丑数 和 超级丑数

给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和 5 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数package com.loo;import java.util.Arrays;import java.util.Queue;import java.util.TreeSet

2021-10-21 17:06:00 75

原创 反转字符串 II(Java)

给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = "abcdefg", k = 2输出:"bacdfeg"示例 2:输入:s = "abcd", k = 2输出:"bacd"提示:1 <= s.length <=s 仅由小写英文组成1 <= k <=..

2021-07-31 00:24:13 106

原创 四数相加 II(Java)

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 到 - 1 之间,最终结果不会超过 - 1 。例如:输入:A = [ 1, 2]B = [-2,-1]C = [-1, 2]D = [ 0, 2]输出:2解释:两个元组如下:1. (0, 0...

2021-07-30 23:24:42 157

原创 快乐数(Java)

编写一个算法来判断一个数 num 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。示例 1:输入:19输出:true解释:+ = 82+ = 68+ = 100+ + = 1示例 2:输入:num = 2输出:false提示:...

2021-07-27 17:34:35 637

原创 赎金信(Java)

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)示例 1:输入:ransomNote = "a", magazine = "b"输出:false示例 2:输入:ransomNote

2021-07-22 23:08:46 348

原创 编辑距离(Java)

给两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例 2:输入:word1 = "intention

2021-07-22 14:59:42 157 1

原创 最长递增子序列(Java)

给一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7

2021-07-11 18:30:38 644

原创 增加千字符分隔符

给定一个合法的数,返回带千字符逗号分隔的数据。说明:1、包括正负整数2、可以考虑正负浮点数。如果给定的数带小数点,从小数点开始往左边方向,每隔三个数字增加一个逗号,小数点向右方向每隔三个数字增加一个小数点。示例1:给定正整数输入:1234567输出:1,124,567示例2:给定负整数输入:-25896输出:-25,896示例3:给定正整数输入:1234567.36958输出:1,124,567.369,58示例4:给定负整数输入:-25896.4521897输出:.

2021-06-25 22:57:06 368

原创 删除倒数第 N 个节点

删除倒数第 N 个节点给定单向链表,删除指定的倒数第 N 个节点。需要考虑链表长度大于、小于 N,假设 N 是有效的整数。package com.loo;public class RemoveNthFromEnd { public static void main(String[] args) { Node head = new Node(1); Node n1 = new Node(2); Node n2 = new Node(3);...

2021-06-15 11:52:04 95

原创 大端和小端字符串输出

题目描述在计算机系统内存在两种字节序:大端和小端大端(Big_Endian)就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。小端(Little_Endian)就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。以数字0x12345678为例:大端(Big_Endian)低地址到高地址依次为“0x12 | 0x34 | 0x56 | 0x78”小端(Little_Endian)低地址到高地址依次为“0x78 | 0x56 | 0x34 | 0x12”现定义一种字符

2021-05-31 10:10:35 2244 3

原创 输出滑动窗口的最大值

给一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7...

2021-05-30 12:03:59 140

原创 最小/大的k个数(Java)

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个 数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制: 0 <= k <= arr.length <= 10000 0 <= arr[i] <= 10000package com.loo;imp...

2021-05-30 11:48:35 132 1

原创 前K个高频元素(topK)

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。 可以按任意顺序返回答案。...

2021-05-30 00:09:15 261 1

原创 有效的括号

给定只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:1. 左括号必须用相同类型的右括号闭合。2. 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:false示例 5:输入:s = "{[]}"输出:tru...

2021-05-29 22:39:33 60

原创 所有排列中的最大和

有一个整数数组 nums ,和一个查询数组 querys ,其中 querys[i] = [start, end] 。第 i 个查询求 nums[start] + nums[start + 1] + ... + nums[end - 1] + nums[end] 的结果 ,start 和 end 数组索引都是 从 0 开始 的。可以任意排列 nums 中的数字,请返回所有查询结果之和的最大值。由于答案可能会很大,请你将它对 + 7 取余 后返回。示例 1:输入:nums = [1,2,3,4,5

2021-05-17 14:21:38 293

原创 避免重复字母的最小删除成本

给一个字符串 s 和一个整数数组 cost ,其中 cost[i] 是从 s 中删除字符 i 的代价。返回使字符串任意相邻两个字母不相同的最小删除成本。注意,删除一个字符后,删除其他字符的成本不会改变。示例 1:输入:s = "abaac", cost = [1,2,3,4,5]输出:3解释:删除字母 "a" 的成本为 3,然后得到 "abac"(字符串中相邻两个字母不相同)。示例 2:输入:s = "abc", cost = [1,2,3]输出:0解释:无需删除任何字母,因为字符串中

2021-03-28 19:48:13 112

原创 间隔种花问题(Java)

假设有一个很长的花坛,一部分地块种植了花,另一部分没有钟。花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给出一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。package com.loo;public class CanPlaceFlowers { public static void main(Str...

2021-01-30 11:09:14 316

原创 岛屿的最大面积(Java)

给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个岛屿是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0...

2020-12-19 21:26:21 446 3

原创 岛屿数量(Java)

给一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = { {1,1,1,1,1}, {1,1,1,1,0}, {1,1,0,0,0}, {0,0,0,0,0}}输出:1示例 2:输入:grid = { {1,1,0,0,0}, {1,1,0,0,0}, {0,0...

2020-12-19 12:23:33 344 2

原创 计算岛屿的周长(Java)

给定一个 m x n 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 1:输入:grid = [[0,1,0,0

2020-12-18 21:39:43 565 1

原创 有多少小于当前数字的数字(Java)

给一个数组 nums,对于其中每个元素 nums[i],统计数组中比它小的所有数字的数目。即,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释:对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。对于 nums[2]=2 存在一个比它

2020-12-18 09:41:46 388

原创 设计哈希映射(Java)

不使用任何内建的哈希表库设计一个哈希映射,设计应该包含以下的功能: put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。 get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。 remove(key):如果映射中存在这个键,删除这个数值对。示例:MyHashMap hashMap = new MyHashMap();hashMap.put(1, 1); hashMap.put(2,...

2020-12-17 20:06:59 215

原创 二倍数对数组(Java)

给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。示例 1:输入:[3,1,3,6]输出:false示例 2:输入:[2,1,2,6]输出:false示例 3:输入:[4,-2,2,-4]输出:true解释:我们可以用 [-2,-4] 和 [2,4] 这两组组成 [-2,-4

2020-12-16 20:38:02 411

原创 字符串解码(Java)

给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: n[encodedString],表示其中方括号内部的 encodedString 正好重复 n 次。注意 n 保证为正整数。可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,可以认为原始数据不包含数字,所有的数字只表示重复的次数 n ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:str = "3[a]2[bc]"输出:"aaabcbc"示例 2:输入:str

2020-12-15 21:44:38 975

原创 朋友圈(Java)

班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:输入:[[1,1,0],[1,1,0],[0,0,1]]输出:2解释:已知学生 0 和学..

2020-12-15 09:39:35 495

原创 可能的二分法(Java)

给定一组 N 人(编号为 1, 2, ..., N),把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果 dislikes[i] = [a, b],表示不允许将编号为 a 和 b 的人归入同一组。当可以用这种方法将所有人分进两组时,返回 true;否则返回 false。示例 1:输入:N = 4, dislikes = [[1,2],[1,3],[2,4]]输出:true解释:group1 [1,4], group2 [2,3]示例 2:输入

2020-12-14 21:58:51 89

原创 二叉树的所有路径(Java)

给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1 / \ 2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3package com.loo;import java.util.ArrayList;import java.util.LinkedList;import ...

2020-12-13 21:54:44 513

原创 名字合并(Java)

有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来。给定两个列表,一个是名字及对应的频率,另一个是本质相同的名字对。设计一个算法打印出每个真实名字的实际频率。注意,如果 John 和 Jon 是相同的,并且 Jon 和 Johnny 相同,则 John 与 Johnny 也相同,即它们有传递和对称性。在结果列表中,选择字典序最小的名字作为真实名字。示例:输入:names = ["John(15)","Jon(12)","Chris(13)","Kris(4

2020-12-13 21:21:06 330

原创 叶子相似的树(Java)

考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。示例 1:输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,nul

2020-12-13 10:58:29 240

原创 求根到叶子节点数字之和(Java)

给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1->3 代表数字 13.因此,数字总和...

2020-12-12 23:31:33 127 1

原创 账户合并(Java)

给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该帐户的邮箱地址。现在想合并这些帐户。如果两个帐户都有一些共同的邮件地址,则两个帐户必定属于同一个人。但请注意,即使两个帐户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称。一个人最初可以拥有任意数量的帐户,但其所有帐户都具有相同的名称。合并帐户后,按以下格式返回帐户:每个帐户的第一个元素是名称,其余元素是

2020-12-12 15:14:33 558 1

空空如也

空空如也

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

TA关注的人

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