随笔分类 -  面试

摘要:题目来源 337. 打家劫舍 III 题目详情 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果 阅读全文
posted @ 2021-12-30 10:43 Garrett_Wale 阅读(84) 评论(0) 推荐(0)
摘要:题目来源 213. 打家劫舍 II 题目详情 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代 阅读全文
posted @ 2021-12-29 09:52 Garrett_Wale 阅读(102) 评论(0) 推荐(0)
摘要:题目来源 198. 打家劫舍 题目详情 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 阅读全文
posted @ 2021-12-29 09:15 Garrett_Wale 阅读(56) 评论(0) 推荐(0)
摘要:题目来源 394. 字符串解码 题目详情 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且 阅读全文
posted @ 2021-12-27 11:32 Garrett_Wale 阅读(101) 评论(0) 推荐(0)
摘要:题目来源 347. 前 K 个高频元素 题目详情 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1 阅读全文
posted @ 2021-12-26 10:33 Garrett_Wale 阅读(130) 评论(0) 推荐(0)
摘要:11. 盛最多水的容器 LeetCode-11 题目描述 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳 阅读全文
posted @ 2021-10-03 09:56 Garrett_Wale 阅读(55) 评论(0) 推荐(0)
摘要:题目来源 LeetCode_322 题目详情 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1: 输入: 阅读全文
posted @ 2021-04-03 21:30 Garrett_Wale 阅读(428) 评论(0) 推荐(0)
摘要:31. 下一个排列 LeetCode_31 题目描述 题解分析 相似题目 31. 下一个排列 556. 下一个更大元素 III 代码实现 class Solution { public void nextPermutation(int[] nums) { int i = nums.length - 阅读全文
posted @ 2021-04-03 20:42 Garrett_Wale 阅读(52) 评论(0) 推荐(0)
摘要:82. 删除排序链表中的重复元素 II LeetCode_82 题目描述 题解分析 解法一:复杂解法 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Li 阅读全文
posted @ 2021-04-01 21:10 Garrett_Wale 阅读(107) 评论(0) 推荐(0)
摘要:41. 缺失的第一个正数 LeetCode_41 题目描述 题解分析 利用哈希表的思想,但是不是使用HashMap。 使用整个数组作为哈希桶,每个nums[i]的数字作为索引下标,将其置为负数表示该位置有数字。 需要注意最后返回的是n+1表示原来数组中包含所有1-n的数字。 方法一:哈希思想 cla 阅读全文
posted @ 2021-04-01 20:38 Garrett_Wale 阅读(100) 评论(0) 推荐(0)
摘要:题目来源 LeetCode_78 题目描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入: nums = [1,2,3] 输出: [[],[1],[2],[1,2],[3],[ 阅读全文
posted @ 2021-03-31 20:52 Garrett_Wale 阅读(70) 评论(0) 推荐(0)
摘要:136. 只出现一次的数字 LeetCode_136 题目描述 相似题目:剑指 Offer 56 - I. 数组中数字出现的次数 代码实现 class Solution { public int singleNumber(int[] nums) { int n = nums.length; int 阅读全文
posted @ 2021-03-31 20:17 Garrett_Wale 阅读(56) 评论(0) 推荐(0)
摘要:468. 验证IP地址 LeetCode_468 题目描述 方法一:正则表达式 import java.util.regex.*; class Solution { //Ipv4的正则匹配表达式 String regIpv4 = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0- 阅读全文
posted @ 2021-03-30 10:29 Garrett_Wale 阅读(136) 评论(0) 推荐(0)
摘要:题目来源 LeetCode_153 相似题目 33. 搜索旋转排序数组 153. 寻找旋转排序数组中的最小值 154. 寻找旋转排序数组中的最小值 II 题目描述 题解分析 解法一:二分法-思路一 这道题高效的解法就是二分法,利用旋转数组部分有序的性质找到最小值。 首先考虑一种情况:数组未旋转或者旋 阅读全文
posted @ 2021-03-30 09:41 Garrett_Wale 阅读(172) 评论(0) 推荐(0)
摘要:题目来源 LeetCode_34 题目描述 题解分析 解法一:二分法 这里与传统的二分法不同,这里需要找到指定元素的左右边界,所以我们无法直接套用二分法的模板。 其实,我们可以分别考虑这两种情况,与普通的二分法不同,当需要找左边界时,当我们找到target == nums[mid],我们不是直接返回 阅读全文
posted @ 2021-03-28 22:20 Garrett_Wale 阅读(65) 评论(0) 推荐(0)
摘要:48. 旋转图像 LeetCode_48 题目描述 方法一:使用辅助数组 class Solution { public void rotate(int[][] matrix) { //第i,j的元素翻转后出现在倒数第i列的第j个元素 int m = matrix.length; int n = m 阅读全文
posted @ 2021-03-28 21:37 Garrett_Wale 阅读(73) 评论(0) 推荐(0)
摘要:143. 重排链表 LeetCode_143 题目描述 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * List 阅读全文
posted @ 2021-03-27 21:24 Garrett_Wale 阅读(61) 评论(0) 推荐(0)
摘要:143. 重排链表 LeetCode_143 题目描述 题解分析 本题的解题核心是需要找到原链表的中间节点,然后将中间节点之后的链表进行反转。 如何找到中间节点呢?这里可以使用快慢指针的思想,通过设置slow和fast指针,当fast走到尾结点时,slow指针敲好指向中间节点。 这里的反转链表操作比 阅读全文
posted @ 2021-03-27 21:22 Garrett_Wale 阅读(63) 评论(0) 推荐(0)
摘要:19. 删除链表的倒数第 N 个结点 LeetCode_19 题目描述 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() { 阅读全文
posted @ 2021-03-27 20:57 Garrett_Wale 阅读(61) 评论(0) 推荐(0)
摘要:0左边必有1的二进制字符串数量 0左边必有1的二进制字符串数量 题目描述 题解思路 代码实现 package com.walegarrett.interview; import java.util.Scanner; /** * @Author WaleGarrett * @Date 2021/3/2 阅读全文
posted @ 2021-03-26 21:50 Garrett_Wale 阅读(258) 评论(0) 推荐(0)