摆动序列系列 Leetcode280 摆动排序 题目:给你一个的整数数组 nums, 将该数组重新排序后使 nums[0] <= nums[1] >= nums[2] <= nums[3]... 题解:设置双指针在排好序的一头一尾,这样先选取小的再选取大的,循环直至数组中的数都被选完。 Java class Solution { public void wiggleSo
给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。 你可以假设所有输入数组都可以得到满足题目要求的结果。 1. 排序后穿插赋值 class Solution { public: void wiggleSort(vector<int>& nums) { int n = nums.size();
LeetCode 435. Non-overlapping Intervals (无重叠区间) 题目 链接 https://leetcode.cn/problems/non-overlapping-intervals/ 问题描述 给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 示例 输入: i
给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个
如果出现下述两种情况,交易 可能无效: 交易金额超过 $1000 或者,它和 另一个城市 中 同名 的另一笔交易相隔不超过 60 分钟(包含 60 分钟整) 给定字符串数组交易清单 transaction 。每个交易字符串 transactions[i] 由一些用逗号分隔的值组成,这些值分别表示交易的名称,时间(以分钟计),金
定义一个函数 f(s),统计 s 中(按字典序比较)最小字母的出现频次 ,其中 s 是一个非空字符串。 例如,若 s = "dcce",那么 f(s) = 2,因为字典序最小字母是 "c",它出现了 2 次。 现在,给你两个字符串数组待查表 queries 和词汇表 words 。对于每次查询 queries[i] ,需统计 words 中满足 f(quer
710. 黑名单中的随机数 1.题目 题目链接: 710. 黑名单中的随机数 2.题解 该题目的解题方法比较巧妙,值得学习。中心思想是将该范围分成两个小范围 [0,n-m) 和 [ n-m, n-1 ] ,将 [0,n-m) 范围内的黑名单数与 [ n-m, n-1 ] 范围内的非黑名单数映射,在范围 [0,n-m) 内取随机
题目:给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 动态规划的详细思路和推倒过程写在注释了 class Solution { public: int longestValidParentheses(string s) { int max = 0; int N = s.size(); if ( N < 2) {
给定一个整数 n 和一个 无重复 黑名单整数数组 blacklist 。设计一种算法,从 [0, n - 1] 范围内的任意整数中选取一个 未加入 黑名单 blacklist 的整数。 任何在上述范围内且不在黑名单 blacklist 中的整数都应该有同等的可能性被返回。 1. 拒绝采样(超时) 一直生成指定范围
一、题目大意 标签: 动态规划 https://leetcode.cn/problems/longest-increasing-subsequence 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7]
给你一个由 '('、')' 和小写字母组成的字符串 s。 你需要从字符串中删除最少数目的 '(' 或者 ')' (可以删除任意位置的括号),使得剩下的「括号字符串」有效。 请返回任意一个合法字符串。 有效「括号字符串」应当符合以下 任意一条 要求: 空字符串或只包含小写字母的字符串 可以被写
There is a row of n houses, where each house can be painted one of three colors: red, blue, or green. The cost of painting each house with a certain color is different. You have to paint all the houses such that no two adjacent houses have the same color.
假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3
/** <p>二维矩阵 <code>grid</code> 由 <code>0</code> (土地)和 <code>1</code> (水)组成。岛是由最大的4个方向连通的 <code>0</code> 组成的群,封闭岛是一个 <code>完全</code> 由1包围(左、上、右、下)
小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫 ,房屋将自动报
给你两个长度相同的字符串,s 和 t。 将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。 用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不
栈 20. 有效的括号 队列 933. 最近的请求次数 链表
给你旋转后的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 显然要是得复杂度为对数级,需要进行二分处理,首先思考如何使得问题规模变小 其实就是以下一个流程 将数组一分为二,其中一定有一个是有序的,另一个可能是有序,也能是部分有序。
原题链接在这里:https://leetcode.com/problems/russian-doll-envelopes/ 题目: You are given a 2D array of integers envelopes where envelopes[i] = [wi, hi] represents the width and the height of an envelope. One envelope can fit into another if and only if both
一、题目大意 标签: 动态规划 https://leetcode.cn/problems/maximal-square 在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。 示例 1: 输入:matrix = [["1","0","1","0","0"],["1","0&
目录 目录目录困难4. 寻找两个正序数组的中位数 困难 4. 寻找两个正序数组的中位数 分成两步来做理解更加简单。先消费完一个数组,再消费另外一个数组 rst1,rst2的获取比较巧妙 class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { //归并排
LeetCode 376. Wiggle Subsequence (摆动序列) 题目 链接 https://leetcode.cn/problems/wiggle-subsequence/ 问题描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列
leetcode 字符串的全排列 All In One LeetCode 567. 字符串的排列 // 排列组合 字符串的排列 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 https://leetcode.cn/explore/interview/card/bytedance/242/string/101
小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作 x 和 y),请小扣说出计算指令: "A" 运算:使 x = 2 * x + y; "B" 运算:使 y = 2 * y + x。 在本次游戏中,店家说出的数字为 x = 1 和 y = 0,小扣说出的计算指令记作仅由大写字母 A、B 组成的字符串 s,字符串中字符的顺
有一个整数数组 nums ,和一个查询数组 requests ,其中 requests[i] = [starti, endi] 。第 i 个查询求 nums[starti] + nums[starti + 1] + ... + nums[endi - 1] + nums[endi] 的结果 ,starti 和 endi 数组索引都是 从 0 开始 的。 你可以任意排列 nums 中的数字,请你返回所有查询结