ICode9

精准搜索请尝试: 精确搜索
  • 动态规划——leetcode55、跳跃游戏2022-08-24 18:01:35

    题目描述:     解题方法:动态规划   动态规划解题步骤:     确定状态: 最后一步:如果能跳到最后一个下标,我们考虑他的最后一步到n-1(最后一个下标),这一步是从 i 跳过来的,i<n-1;           这需要满足两个条件: 可以跳到 i ; 最后一步跳跃的距离 <= 从i可以跳跃

  • 1. Two Sum #2022-08-24 16:03:35

    1. Two Sum # 题目 # Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [

  • 两数之和2022-08-24 07:00:40

    题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例1 输入:nums = [2,7,11

  • [题解]轮流拿牌问题_一道博弈论笔试题(C++)2022-08-23 12:32:14

    题目 A和B轮流从一个数组左右两端取数,A先B后,每次取一个数,最终取数总和大者获胜,两人每次都会选择最有利的策略,求获胜者取数的和。 思路 笔试时遇到的一道算法题,也是博弈论中非常经典的入门题目了。从先后手的角度考虑,先手在行动一次后获得左右两端数中的一个,然后转换为后手;而后手在

  • LeetCode - 三数之和2022-08-23 11:04:55

    题目信息 源地址:三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0,请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 提示信息 示例 1 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 示例 2 输

  • 和为k的连续子数组2022-08-23 10:01:18

    方法一、暴力法 方法二、前缀和 + HashMap 求解和的方式往往能够分解成sum-k方式,查找此key是否在该dict中,count累加计数 # prefix sum nums = [1,1,1,1] k, count = 2, 0 dic = {0:1} # 和为key的前缀和有value个 prefix_sum = 0 for i in range(len(nums)): prefix_sum +=

  • [Oracle] LeetCode 1802 Maximum Value at a Given Index in a Bounded Array2022-08-23 06:30:08

    You are given three positive integers: n, index, and maxSum. You want to construct an array nums (0-indexed) that satisfies the following conditions: nums.length == n nums[i] is a positive integer where 0 <= i < n. abs(nums[i] - nums[i+1]) <= 1

  • 76. 最小覆盖子串2022-08-23 01:03:50

    76. 最小覆盖子串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。   注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们

  • LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置2022-08-22 18:31:31

    34. 在排序数组中查找元素的第一个和最后一个位置 思路: 与AcWing 789一致 class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { if (nums.size() == 0) return {-1, -1}; int begin, end; int l = 0, r = nums.size(

  • 1 的个数2022-08-22 12:32:53

    https://www.acwing.com/problem/content/1535/ ` 思路: 暴力肯定是不可能的,枚举每一个的情况,分类讨论。 #include <iostream> #include <vector> using namespace std; typedef long long LL; int n; LL calc(int n){ vector<int> nums; while (n){ nums.push

  • Maximum Segment Sum After Removals2022-08-21 19:34:15

    Maximum Segment Sum After Removals You are given two 0-indexed integer arrays $nums$ and $removeQueries$, both of length $n$. For the $i^{th}$ query, the element in $nums$ at the index $removeQueries[i]$ is removed, splitting $nums$ into different segment

  • 219. 存在重复元素 II2022-08-21 19:00:48

      思路 难度简单506收藏分享切换为英文接收动态反馈 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。   示例 1: 输入:nums = [1,2,3,1

  • 单调栈模板2022-08-21 11:04:15

    力扣503 class Solution { public: vector<int> nextGreaterElements(vector<int>& nums) { int n = nums.size(); vector<int> ret(n, -1); stack<int> stk; for (int i = 0; i < n * 2 - 1; i++) {

  • 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。2022-08-20 19:00:08

    <script> // 11.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), //凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 //写一个数组 存所有的人 function fn(n){ //初始化一个数组 var nums = [] for(var i=0

  • 2022-8-20 每日一题-二叉树-递归2022-08-20 11:00:51

    654. 最大二叉树 难度中等499收藏分享切换为英文接收动态反馈 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值

  • 状压DP-1755. 最接近目标值的子序列和2022-08-20 10:02:36

    问题描述 给你一个整数数组 nums 和一个目标值 goal 。 你需要从 nums 中选出一个子序列,使子序列元素总和最接近 goal 。也就是说,如果子序列元素和为 sum ,你需要 最小化绝对差 abs(sum - goal) 。 返回 abs(sum - goal) 可能的 最小值 。 注意,数组的子序列是通过移除原始数组中的

  • 654. 最大二叉树2022-08-20 02:00:08

    654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums

  • LeetCode/最大二叉树2022-08-20 01:31:22

    给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值 递归地在最大值 左边 的 子数组前缀上 构建左子树 递归地在最大值 右边 的 子数组后缀上 构建右子树 1. 暴力分治构造 暴力在于每次递归都要找一次最大

  • 55. 跳跃游戏2022-08-20 01:30:48

    55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。   示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3

  • 状压DP-1815. 得到新鲜甜甜圈的最多组数2022-08-19 20:30:58

    问题描述 有一个甜甜圈商店,每批次都烤 batchSize 个甜甜圈。这个店铺有个规则,就是在烤一批新的甜甜圈时,之前 所有 甜甜圈都必须已经全部销售完毕。给你一个整数 batchSize 和一个整数数组 groups ,数组中的每个整数都代表一批前来购买甜甜圈的顾客,其中 groups[i] 表示这一批

  • 659. Split Array into Consecutive Subsequences2022-08-19 13:33:05

    You are given an integer array nums that is sorted in non-decreasing order. Determine if it is possible to split nums into one or more subsequences such that both of the following conditions are true: Each subsequence is a consecutive increasing se

  • leetcode数组题目2022-08-19 09:01:15

    1.两数之和 1.1 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 1.2 示

  • 算法---二分2022-08-18 22:31:05

        class Solution { public: int findPeakElement(vector<int>& nums) { // write code here //题目只需要求一个峰值即可,我门可以利用二分法+一直向峰值逼近的策略 int left =0; int right = nums.size()-1; while(left<

  • 二分法代码笔记2022-08-18 19:00:42

    二分法代码笔记 最近复习二分法的题目,发现左右区间的二分写法总是无法第一时间写出正确的,故痛定思痛,通过写笔记的形式记录下来。 这里需要说明的是,二分法多用于单调情况下的LogN复杂度的搜索,并非只用于排序数组。二分法是一种高效的搜索方法,前提是能分析出问题是随某一个自变量的

  • leetcode53-最大子数组和2022-08-18 17:02:05

    最大子数组和 dp 记录当前位置的累加和以及最大子数组和。 遍历数组并累加,如果发现累加和小于0,那么前面累加的东西反而会使得后面的和变小,那么直接丢弃,将累加和清零。 class Solution { public int maxSubArray(int[] nums) { int max = nums[0], cur = 0;

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有