ICode9

精准搜索请尝试: 精确搜索
  • 【回溯】力扣79:单词搜索2022-08-13 12:32:40

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

  • 力扣|Q997找法官FindTheTownJudge2022-08-13 00:32:52

    Q997FindTheTownJudge 简介 小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。 如果小镇法官真的存在,那么: 小镇法官不会信任任何人。 每个人(除了小镇法官)都信任这位小镇法官。 只有一个人同时满足属性 1 和属性 2 。 给你一个数组 trust ,其中 trust

  • 力扣每日一题 9. 回文数2022-08-11 10:32:43

    给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 示例 1: 输入:x = 121 输出:true 示例 2: 输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此

  • 力扣每日一题 1417. 重新格式化字符串2022-08-11 10:03:01

    给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。 请你返回 重新格式化后 的字符串;如果无法按要求重新格式化,则返回一个 空字符串 。   示例

  • 力扣练习——61 根据字符出现频率排序2022-08-08 19:02:49

    1.问题描述 给定一个字符串,请将字符串里的字符按照出现的频率降序排列,如果频率相同,则按照字符的ASCII码升序排列。   示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。 因此'e'必须出现在'r'和't'之前,而且'r'比't'的ASCII码小

  • 力扣-22-括号生成2022-08-08 14:31:09

    直达链接 之前好像也有一道括号的题,力扣-20-有效的括号,给的标签是“栈”,不过这次的标签是“动态规划”和“回溯法”了 返回所有可能结果,一看就是回溯了,但是我好像一直没完全搞明白过 class Solution { public: void backtrack(vector<string>& ans, string& cur, int open, int

  • 力扣练习——59 从二叉搜索树到更大和树2022-08-07 18:01:56

    1.问题描述 给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的所有节点的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。

  • 力扣 题目5- 最长回文子串2022-08-07 17:35:13

    题目 题解 1.暴力解法 从前往后遍历途中对 以i为中心对称遍历 和 i也有对称数的对称遍历 2.动态规划 一个回文子串 意味着将两端去掉依然是回文子串 所以我们使用两层vector 记录从开始位置到结束位置是否是回文字符 当s[j]==s[i]时 就去看res[i + 1][j - 1] 是否也为true 是则re

  • 力扣-300-最长递增子序列2022-08-07 17:02:01

    直达链接 想到了连续子数组的最大和 自己想 我本来想倒着推,有点像mari和shiny,但是不对 class Solution { public: int lengthOfLIS(vector<int>& nums) { int length = nums.size(); if (length < 2) return 1; vector<int> dp(length); dp[length - 1] = 1; nums[le

  • 力扣练习——56 寻找右区间2022-08-06 23:03:13

    1.问题描述 给定一组区间(包含起始点和终点),对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的“右侧”。 对于任何区间,你需要存储的满足条件的区间 j 的最小索引,这意味着区间 j 有最小的起始点可以使其成为“右侧”区间。如果区间 j

  • 力扣53.最大子数和2022-08-01 12:32:01

    三种情况:   1.左半部分(leftsum)最大(与右边不连续,不一定包括mid)   2.右半部分(rightsum)最大(与左边不连续,不一定包括mid+1)   3.左右部分联合最大(左右两边连续,包括mid)   1和2是前面返回的(与另一边不连续 !!!,左半部分不一定是包含mid 以mid结尾的,右半部分也不一定包含mid+1,从mid+1

  • 力扣14.最长公共前后缀2022-08-01 11:04:29

    CommonPre函数:把字符串数组一分为二,分别求出左右两边数组的最长公共前后缀 left 和 right,然后将两者进行比较得到最终的 最长公共前后缀 1 class Solution { 2 public: 3 string longestCommonPrefix(vector<string>& strs) { 4 return CommonPre(strs,0,strs.siz

  • 力扣练习——44 路径总和 III2022-07-28 11:35:56

    1.问题描述 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。   示例:

  • 力扣 题目99- 验证二叉搜索树2022-07-27 19:35:28

    题目 题解 在力扣 题目98- 验证二叉搜索树中 我们知道了 中序遍历后的二叉搜索树 应该为递增 那么出错就应该是有部分递减 那么我们在98题的基础上 反向检测 保存减少数列的开头与结尾进行交换 代码 1 #include<iostream> 2 #include<vector> 3 #include<stack> 4 using n

  • 力扣-98-验证二叉搜索树2022-07-27 16:03:25

    二叉搜索树,也叫二叉排序树,满足以下性质: 对于任意节点,(如果有)左子节点小于当前节点,右子节点大于当前节点 算法思路 也是递归吗?递归地去判断左右子节点与当前节点的大小 官方题解中更巧妙的办法是:中序遍历,基于以下性质 二叉搜索树的中序遍历一定是升序序列 只需要在中序遍历的过程

  • 力扣 题目97- 交错字符串2022-07-23 18:03:49

    题目 题解 首先就想的是动态规划法 用dp[i][j] ->即当s1取长度i s2取长度j时是否满足 需要注意的是当其中一个字符串为0 则另一个字符串必须全部与s3匹配才为1 int n1 = s1.size(), n2 = s2.size(); vector<vector<bool>> dp(n1+1,vector<bool>(n2+1)); dp[0][0

  • 力扣日练-day42022-07-23 13:00:49

    1、每日温度   关键:需要返回与原数组等长的数组结果而且双层循环会超时,采用栈结构(存储下标计算天数),用第一个元素的下标初始化栈,构造一个和原数组等长的全0数组表示初始天数,之后遍历原温度数组并更新栈顶元素(若当前温度较高则弹出栈顶元素并计算,将当前元素下标入栈,否则直接将当前

  • 【树】力扣669:修剪二叉搜索树2022-07-23 11:05:13

    给你二叉搜索树的根节点 root,同时给定最小边界 low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在 [low, high] 中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。 所以结果应当返回

  • 力扣258(java)-各位相加(简单)2022-07-21 23:33:47

    题目: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。   示例 1: 输入: num = 38输出: 2 解释: 各位相加的过程为:38 --> 3 + 8 --> 1111 --> 1 + 1 --> 2由于 2 是一位数,所以返回 2。示例 1: 输入: num = 0输出: 0  提示: 0 <= num <= 231 - 1

  • 力扣 题目95- 不同的二叉搜索树 II2022-07-19 18:34:51

    题目 题解 我们可以将一个大的二叉搜索树分成越来越小的二叉搜索树  那么问题是如何取左节点 与 右节点的可能性 也就是我们需要的做 便是如何找到左节点范围 右节点范围 二叉搜索树 //左节点比根节点小//右节点比根节点大 //右节点下的子节点也比左节点的子节点大 //已经取过

  • 力扣练习——29 按要求补齐数组2022-07-18 18:36:54

    1.问题描述 给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。   示例 1: 输入: nums = [1,3], n = 6 输出: 1

  • 力扣 题目94- 二叉树的中序遍历2022-07-18 18:05:47

    题目 题解 二叉树有点忘记了 专门去复习了 一遍 其实就是 左中右 一看用递归或者栈吧 栈比较简单一些 我们直接不断向左移动 碰到空就向栈顶的右走即可 代码 1 #include<iostream> 2 #include<vector> 3 #include<stack> 4 using namespace std; 5 6 struct TreeNode {

  • 力扣练习——28 拼接最大数2022-07-18 11:00:18

    1.问题描述 给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。 求满足该条件的最大数。结果返回一个表示该最大数的长度为

  • 【刷题总结-C】strcpy函数的用法-力扣12题总结2022-07-17 20:01:09

    strcpy函数的用法-力扣12题总结 力扣12题,整数转换罗马数字,思路非常简单,对于给定的数字num,依次从最大的数字单位1000开始递减,每次递减就在结果字符串中加入相应的罗马符号;比如对于数字2030,减两次1000后数字开始小于1000,然后结果字符串中会加入两个M,只要建立一个罗马字符与数字对应

  • 力扣今日题-565. 数组嵌套2022-07-17 18:35:31

    565. 数组嵌套 思路: class Solution { public int arrayNesting(int[] n) { int numsLength = n.length; boolean[] visited = new boolean[numsLength]; int res= 1; for(int i = 0 ; i < numsLength; i++){ if(res > num

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

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

ICode9版权所有