博客主页 🏗️
分类

文章阅读

下的文章

Count:

计 0 篇
没有找到内容
5月份最后一周计划||6月第一周计划(5.29-6.4)
5月份最后一周计划||6月第一周计划(5.29-6.4)
无题
今日简单学了一下TOEFL综合写作,还有nsn第二课。后天要出发了,两个月后再次踏上开往远方的列车。这次又是临时起意,差点买不到票,遂中转。于是这次旅程将去往两个地方。浅浅期待一下。话说宾馆还没订。
wy的leetcode刷题记录_Day66
wy的leetcode刷题记录_Day66声明本文章的所有题目信息都来源于leetcode如有侵权请联系我删掉!时间:2023 4 10前言@TOC1019. 链表中的下一个更大节点今天的每日一题是:1019. 链表中的下一个更大节点题目介绍给定一个长度为 n 的链表 head对于列表中的每个节点,查找下一个 更大节点 的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值 严格大于 它的值。返回一个整数数组 answer ,其中 answer[i] 是第 i 个节点( 从1开始 )的下一个更大的节点的值。如果第 i 个节点没有下一个更大的节点,设置 answer[i] = 0 。示例 1:输入:head = [2,1,5] 输出:[5,5,0] 示例 2:输入:head = [2,7,4,3,5] 输出:[7,0,5,5,0]思路一道简单的模拟题,分析题意下来就是,遍历整个节点,对于当前节点我们向后寻找第一个大于该节点的节点值,并将值放入一个vector,如果没有则放入0。代码/** * Definition for singly linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) * ListNode(int x) : val(x), next(nullptr) * ListNode(int x, ListNode *next) : val(x), next(next) * }; */ class Solution { public: vector<int> nextLargerNodes(ListNode* head) { ListNode* curr=head; ListNode*next=head >next; vector<int> ans; while(curr >next) { while(next) { if(next >val>curr >val) { ans.push_back(next >val); break; } else { next=next >next; } } if(next==nullptr) { ans.push_back(0); } curr=curr >next; next=curr >next; } ans.push_back(0); return ans; } };收获简单的模拟题OI WIKIOI WIKI从今天起,开始较为系统的学习算法的一些基础,不再盲目刷题了。
wy的leetcode刷题记录_Day64
wy的leetcode刷题记录_Day64声明本文章的所有题目信息都来源于leetcode如有侵权请联系我删掉!时间:2023 3 29前言@TOC1641. 统计字典序元音字符串的数目今天的每日一题是:1641. 统计字典序元音字符串的数目题目介绍给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。示例 1:输入:n = 1 输出:5 解释:仅由元音组成的 5 个字典序字符串为 ["a","e","i","o","u"] 示例 2:输入:n = 2 输出:15 解释:仅由元音组成的 15 个字典序字符串为["aa","ae","ai","ao","au","ee","ei","eo","eu","ii","io","iu","oo","ou","uu"]。注意,"ea" 不是符合题意的字符串,因为 'e' 在字母表中的位置比 'a' 靠后 示例 3: 输入:n = 33 输出:66045思路归纳总结法:列出表格看图:数学分析法:我们想象有五个盒子,共有n个小球。从左往右盒子编号依次为a、e、i、o、u,我们必须从左往右再拿n个小球出来,每当我们拿出一个小球时,将盒子上的编号填入字符串即可。这样子就转换成这n个小球该如何放入这5个盒子并且盒子可以为空的排列组合问题。我们假设有n+5个球,多出的5个球分别放入a、e、i、o、u,这样剩下n个就可以随便放入了。就是在这n个球中插入四个隔板分成五类,四个隔板在n 1个空中随机分布C(4 n 1)。或者你将n个球盒子不为空和空1个一直到空5个的情况加起来也可以。代码class Solution { public: int countVowelStrings(int n) { vector<vector<int>> dp(n+1,vector<int>(5)); // int dp[n][5]; if(n==1) return 5; for(int i=0;i<5;i++) { dp[0][i]=1; } for(int i=0;i<n+1;i++) { dp[i][0]=1; } for(int i=1;i<n+1;i++) { for(int j=1;j<5;j++) { dp[i][j] = dp[i][j 1] + dp[i 1][j]; } } return dp[n][4]; } };class Solution { public: int countVowelStrings(int n) { return (n + 4) * (n + 3) * (n + 2) * (n + 1) / 24; } }; 收获观察题,最后总结出数学规律。
博客主页 wyのblog-我的美好生活记录 I know you are here. 百度统计
鄂ICP备2023003777号-1 本站已运行 1 年 64 天 12 小时 11 分 自豪地使用 Typecho 建站,并搭配 MyDiary 主题 Copyright © 2023 ~ 2024. wyのblog-我的美好生活记录 All rights reserved.
打赏图
打赏博主
欢迎
搜 索
足 迹
分 类
  • 默认分类
  • Code
  • 日记
  • 音乐
  • 游戏
  • 阅读
  • 计划
  • 图片
  • 旅游
  • 影视
  • 文章阅读