150专题

Leetcode面试经典150题-128.最长连续序列-递归版本另解

之前写过一篇这个题的,但是可能代码比较复杂,这回来个简洁版的,这个是递归版本 可以看看之前的版本,两个版本面试用哪个都保过 解法都在代码里,不懂就留言或者私信 class Solution {/**对于之前的解法,我现在提供一共更优的解,但是这种可能会比较难懂一些(思想方面)代码其实是很简洁的,总体思想如下:不需要排序直接把所有数放入map,map的key是当前数字,value是当前数开始的

Leetcode面试经典150题-2.两数相加

解法都在代码里,不懂就留言或者私信 理论上提交这个就是最优解 字节考过不下20次,这个高居字节面试榜第9名 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) {

Leetcode面试经典150题-83.删除链表中的重复元素

解法都在代码里,不懂就留言或者私信 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int va

力扣面试150 分隔链表 模拟

Problem: 86. 分隔链表 👨‍🏫 参考题解 Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val

力扣面试经典算法150题:接雨水

接雨水 今天的题目是力扣面试经典算法150题中的困难难度数组题目:分发糖果。 题目链接:https://leetcode.cn/problems/trapping-rain-water/description/?envType=study-plan-v2&envId=top-interview-150 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱

Leetcode面试经典150题-106.从中序和后序序列构造二叉树

解法都在代码里,不懂就留言或者私信 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val;

力扣面试150 旋转链表 闭链成环

Problem: 61. 旋转链表 👨‍🏫 力扣官解 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }*

1.百度150道题,今天开刷。1.用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。

#include "stdio.h"#include <string.h>#include <cstdlib>char * revert(char *str){int len = strlen(str);int i = 0;char temp;while(i < len/2) //这里注意,不能取等号{temp = str[len-1-i];str[len-1-i] =str [i];st

【NO.17】LeetCode经典150题-13. 罗马数字转整数

文章目录 【NO.17】LeetCode经典150题-13. 罗马数字转整数解题:模拟 【NO.17】LeetCode经典150题-13. 罗马数字转整数 13. 罗马数字转整数 【简单】 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值I 1V 5X

Leetcode面试经典150题-151.反转字符串中的单词

class Solution {public String reverseWords(String s) {/**先trim一下去掉前后的空格*/String str = s.trim();/**转成字符数组 */char[] sArr = str.toCharArray();/**先整体倒置*/int l = 0;int r = sArr.length - 1;reverse(sArr, l

【NO.16】LeetCode经典150题-42. 接雨水

文章目录 【NO.16】LeetCode经典150题-42. 接雨水解题:动态规划 【NO.16】LeetCode经典150题-42. 接雨水 42. 接雨水 【困难】【HOT100】 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1 : 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1

Leetcode面试经典150题-136.只出现一次的数字

解法都在代码里,不懂就留言或者私信 这个题不知道为啥会考,过于简单了,我解题+写注释用了两分钟不到,5行代码。。。 class Solution {public int singleNumber(int[] nums) {/**这个题目确实时间的题,根据位运算法则我们知道1.两个相同的数异或之后是02.任何数和0异或之后是它本身所以我们考虑拿所有的数进行异或,因为其他数都出现两次,所以其他

Leetcode面试经典150题-45.跳跃游戏II

解法都在代码里,不懂就留言或者私信,这个题绝对比动态规划的解法强 class Solution {/**本题我们先不用动态规划了,因为从任何一个位置都可能跳到最后一个位置,用动态规划的成本太高了本题的解题思路:看看某个步数内最多能跳到多远,如果某步内能涵盖最后一个位置,那这个就是最小的步数 */public int jump(int[] nums) {/**你就在终点,跳啥啊 */if(num

【NO.15】LeetCode经典150题-135. 分发糖果

文章目录 【NO.15】LeetCode经典150题-135. 分发糖果解题:贪心 【NO.15】LeetCode经典150题-135. 分发糖果 135. 分发糖果 【困难】 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。

Leetcode面试经典150题-82.删除排序链表中的重复元素II前序-83.删除排序链表中的重复元素

解法都在代码里,不懂就留言或者私信,比第一题稍微难点 题目比较简单,真实面试中82和83都出现过,83偏多,先有个基础,马上分析82 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNod

Leetcode面试经典150题-36.有效数独

解法都在代码里,不懂就留言或者私信,比第一题稍微难点 class Solution {public static boolean isValidSudoku(char[][] board) {/**rowExists[i][j]代表第i行是否存在数据j+1*/boolean[][] rowExists = new boolean[9][9];/**rowExists[i][j]代表第i列是否存

【LeetCode面试150】——48旋转图像

博客昵称:沈小农学编程 作者简介:一名在读硕士,定期更新相关算法面试题,欢迎关注小弟! PS:哈喽!各位CSDN的uu们,我是你的小弟沈小农,希望我的文章能帮助到你。欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘 题目难度:中等 默认优化目标:最小化时间复杂度。 Python默认为Python3。 目录 1 题目描述 2 题目解析 3 算法原理和代码实现

Leetcode面试经典150题-28.找出字符串第一个匹配项的下标

解法都在代码里,不懂就留言或者私信,比第一题稍微难点 用KMP解这个题简直就像大炮打蚂蚁,但是没办法,现在都是这么卷 package dataStructure.bigFactory;public class _28Strstr {public static int strStr(String s1, String s2) {/**健壮性判断*/if(s1 == null || s2 ==

面试经典算法150题系列-反转字符串中的单词

反转字符串中的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。 示例 1:

力扣面试经典算法150题:加油站

加油站 今天的题目是力扣面试经典150题中的数组的中等难度题:加油站。 题目链接:https://leetcode.cn/problems/gas-station/description/?envType=study-plan-v2&envId=top-interview-150 问题描述 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容

【LeetCode面试150】——54螺旋矩阵

博客昵称:沈小农学编程 作者简介:一名在读硕士,定期更新相关算法面试题,欢迎关注小弟! PS:哈喽!各位CSDN的uu们,我是你的小弟沈小农,希望我的文章能帮助到你。欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘 题目难度:中等 默认优化目标:最小化时间复杂度。 Python默认为Python3。 目录 1 题目描述 2 题目解析 3 算法原理及代码实现

Leetcode面试经典150题-122.买卖股票的最佳时机II

解法都在代码里,不懂就留言或者私信,比第一题稍微难点 class Solution {/**题目分析:这个问题是我们可以无限次买卖,这个题其实是寻找波峰和波谷的问题理论上我们在上升期的最低点买,最高点卖就能获得最大利润,但是寻找波峰和波谷的过程会比较麻烦我们这里代替一下寻找波峰和波谷:如果在上升阶段,把所有的点获得的利润(都是前一个交易日买这个交易日卖)加一起,其实就是波谷买波峰卖,只不过这样

Leetcode面试经典150题-5.最长回文子串

解法都在代码里,不懂就留言或者私信 class Solution {public static String longestPalindrome(String s) {if(s == null || s.length() == 0) {return null;}//加工字符串,例如abcdcba加工成#a#b#c#d#a#b#c#d#String str = getManacherString

Leetcode面试经典150题-188.买卖股票的最佳时机IV

解法都在代码里,不懂就留言或者私信,这个稍微难点,我提供了两种解法 /**基本的动态规划求解的过程 */public static int maxProfit2(int k, int[] prices) {/**题目给的数组不会为null,这里习惯性的健壮性判断如果交易日小于2,不可能获得任何的利润 */if(prices == null || prices.length < 2) {retu

力扣面试150 插入区间 模拟

Problem: 57. 插入区间 👨‍🏫 代码随想录 模拟 ⏰ 时间复杂度: O ( n ) O(n) O(n) class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {int idx = 0;List<int[]> res = new ArrayList<>();while

力扣面试经典算法150题:O(1) 时间插入、删除和获取随机元素

O(1) 时间插入、删除和获取随机元素 今天的题目是力扣面试经典150题中的数组的中等难度题: O(1) 时间插入、删除和获取随机元素。 题目链接:https://leetcode.cn/problems/insert-delete-getrandom-o1/description/?envType=study-plan-v2&envId=top-interview-150 问题描述