当前位置: 首页 > news >正文

25.4.1学习总结【Java】

动态规划题

2140. 解决智力问题 https://leetcode.cn/problems/solving-questions-with-brainpower/

给你一个下标从 0 开始的二维整数数组 questions ,其中 questions[i] = [pointsi, brainpoweri] 。

这个数组表示一场考试里的一系列题目,你需要 按顺序 (也就是从问题 0 开始依次解决),针对每个问题选择 解决 或者 跳过 操作。解决问题 i 将让你 获得  pointsi 的分数,但是你将 无法 解决接下来的 brainpoweri 个问题(即只能跳过接下来的 brainpoweri 个问题)。如果你跳过问题 i ,你可以对下一个问题决定使用哪种操作。

  • 比方说,给你 questions = [[3, 2], [4, 3], [4, 4], [2, 5]] :

    • 如果问题 0 被解决了, 那么你可以获得 3 分,但你不能解决问题 1 和 2 。

    • 如果你跳过问题 0 ,且解决问题 1 ,你将获得 4 分但是不能解决问题 2 和 3 。

提示:

  • 1 <= questions.length <= 10^5

  • questions[i].length == 2

  • 1 <= pointsi, brainpoweri <= 10^5

对了12/54的代码: 

#define max(a,b) (((a)>(b))?(a):(b))
long long mostPoints(int** questions, int questionsSize, int* questionsColSize) {
    long long record[questionsSize];
    for(int i=0;i<questionsSize;i++) {
      record[i] = 0;
    }
    for(int i=0;i<questionsSize;i++) {
      record[i]=max(record[i],record[i]+questions[i][0]);
      const int temp=i+1+questions[i][1];
      if (temp<questionsSize) {
        record[temp]=max(record[temp],record[i]);
      }
    }
    return record[questionsSize-1];
}

 正则表达式

正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于匹配字符串的模式。

1. 基本概念

正则表达式由字符和特殊符号组成,用于描述字符串的模式。使用正则表达式,可以检查某个字符串是否符合特定的格式,或者从字符串中提取符合模式的部分。

2. 常用的正则表达式语法

2.1. 字符类

  • [abc]:表示匹配 ab 或 c 中的任意一个字符。

  • [^abc]:表示匹配任何不是 ab 或 c 的字符。

  • [a-z]:表示匹配从 a 到 z 的所有小写字母。

  • [A-Z]:表示匹配从 A 到 Z 的所有大写字母。

  • [0-9]:表示匹配所有数字。

2.2. 预定义字符类

  • \d:匹配任何一个数字,等同于 [0-9]

  • \D:匹配任何非数字字符,等同于 [^0-9]

  • \w:匹配任何一个字母、数字或下划线,等同于 [a-zA-Z0-9_]

  • \W:匹配任何非字母、数字或下划线字符,等同于 [^a-zA-Z0-9_]

  • \s:匹配任何空白字符(如空格、制表符、换行符等)。

  • \S:匹配任何非空白字符。

2.3. 元字符

  • .:匹配除换行符以外的任何单个字符。

  • ^:匹配输入字符串的开始。

  • $:匹配输入字符串的结尾。

  • *:表示匹配前一个元素零次或多次。

  • +:表示匹配前一个元素一次或多次。

  • ?:表示匹配前一个元素零次或一次。

  • {n}:匹配前一个元素恰好 n 次。

  • {n,}:匹配前一个元素至少 n 次。

  • {n,m}:匹配前一个元素至少 n 次,但不超过 m 次。

2.4. 分组和捕获

  • (...):用于分组,记住匹配的子表达式。可以通过编号或名称捕获组。

    • 例:(abc) 将匹配 abc 并将其作为组 1。

  • |:表示“或”的关系。

    • 例:abc|def 可以匹配 abc 或 def

3. 特殊的转义字符

当需要匹配的字符具有特殊含义时,可以使用反斜杠 \ 进行转义。例如:

  • \.:匹配字面意思的句点 .

  • \*:匹配字面意思的星号 *

 

相关文章:

  • 嵌入式EMC设计面试题及参考答案
  • 汇编学习之《移位指令》
  • Citus源码(2)分布式读流程分析与基础概念梳理(shardid、placementid、groupid)
  • 【QT】QT的多界面跳转以及界面之间传递参数
  • 【超详细】一文解决更新小米澎湃2.0后LSPose失效问题
  • 使用 Less 实现 PC 和移动端样式适配
  • Java基础-27-多态-多态好处和存在的问题
  • win server2022 限制共享文件夹d
  • PWA 进阶教程(二): 如何在 PWA 中实现推送通知
  • Linux系统调用编程
  • LeetCode102.二叉树的层序遍历
  • 【操作系统】Linux进程管理和调试
  • QML Book 学习基础6(定位/布局元素)
  • 【浏览器的渲染原理】
  • uniapp微信小程序开发工具本地获取指定页面二维码
  • 【AI工具】DeepSeek直接生成图片,效果不错
  • 前后端数据序列化:从数组到字符串的旅程(附优化指南)
  • 爬虫:请求头,requests库基本使用
  • 《C++Linux编程进阶:从0实现muduo 》-第8讲.C++面试如何高效获取线程ID
  • nginx如何重启
  • 《歌手》回归,人均技术流,00后整顿职场
  • 病愈出院、跳大神消灾也办酒,新华每日电讯:农村滥办酒席何时休
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲
  • 河南:响鼓重锤对违规吃喝问题露头就打、反复敲打、人人喊打
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验