- AI
- AI
- AI老实说,没有很多复杂的技巧,纯靠积累了,单词必须得多过几遍。我当时是从大三上学期开始就在持续背单词,一直积累到大四上学期考研。
- AI忙,忙点好啊.jpg 分类讨论题。先判断循环数组的单调性,如果不单调直接 pass。``` class Solution { public: int minOperations(vector<int>& nums) { // 要让数组变成递增的,整个数组必须至少是循环递增或者循环递减的 // 如果都不是直接返回 -1 int n=nums.size(); if(n==1){ return 0; }
- AI在低版本 PHP 补丁出来前可以直接先禁止所有 multipart 请求,比如 nginx 的:``` server { # 其他现有配置... if ($http_content_type ~* "^\s*multipart/") { return 415; } # ... }
- AI这 buff 叠满了,跨专业 + 无实习,现在外包都不会招的。要说十年前还是有可能的。 小红书上的看看就行了,张口谁还不会说了。感觉知乎之前一大批嘉豪都跑小红书去了。
- AI这是真的梁圣了,整套算是毫无保留的开源。期待第三方部署质量能提上来。
- AI按绝对值排序,然后按贪心思路分别取较大一端作为正项,较小一端作为负项来运算。``` class Solution { public: long long maxAlternatingSum(vector<int>& nums) { // 按绝对值排序,正项从大的一端取,负项从小的一端取 sort(nums.begin(),nums.end(),[&](const int& a,const int&
- AI不止 ArXiv,顶会论文(尤其是 AI 会议)现在都通货膨胀了,审稿机制崩溃在即。学术圈的评价体系这几年内可能就要发生大变了。
- AI用记忆化 DFS 写的话,思路很清晰。``` class Solution { public: bool hasValidPath(vector<vector<char>>& grid) { // 只要存在一条合法的就行 // 因为从左上角开始,右下角结束,路径长度总是相同的 // 过程中左括号数量肯定 >= 右括号数量 // 直接 DFS bool res=false; int m=grid.s
- AI
- AI
- AI典型的栈应用题。``` class Solution { public: string reverseParentheses(string s) { // 可以维护左括号的位置 // 每次遇到右括号就弹出对应的左括号下标,把这之间的字符串反转 stack<int> stk; for(int i=0;i<s.size();i++){ if(s[i]=='('){ stk.emplace(i); }e
- AI典型的栈应用题。``` class Solution { public: string reverseParentheses(string s) { // 可以维护左括号的位置 // 每次遇到右括号就弹出对应的左括号下标,把这之间的字符串反转 stack<int> stk; for(int i=0;i<s.size();i++){ if(s[i]=='('){ stk.emplace(i); }e
- AI比较好处理的哈希表 + 字符串处理题。``` class Solution { public: string evaluate(string s, vector<vector<string>>& knowledge) { // 哈希表题 unordered_map<string,string> kMap; for(auto& k:knowledge){ kMap[k[0]]=k[1]; } //
- AI佬友中秋节快乐啊!中秋节竟然上强度了…这题算是学到了神奇的 BFS 做法。``` class Solution { public: vector<string> braceExpansionII(string expression) { // 输入规模并不大 // 括号嵌套括号等同于展开,去重 // 比如 {c,d,{d,e}} = {c, d, e} // 可以用 BFS 来剥离括号并和前面的字
- AI总算有简单题了。``` class Solution { public: int reverseDegree(string s) { int res=0; for(int i=0;i<s.size();i++){ res+=(i+1)*('z'-s[i]+1); } return res; } };
- AI有点丑陋了。思路还是比较明确的,找每个字符首次 (`l`) 和最后出现 (`r`) 的位置,其**之间**出现的字符 \alpha 可能全出现在 `(l, r)`、也可能最早出现在 `l` 之前、亦可能最晚出现在 `r` 之后。 \alpha 出现在 `r` 之后,根据题目要求需要扩展 `r`;但 \alpha 出现在 `l` 之前的话,不用管当前区间,因为处理到该字符的时候就会考虑到当前这个区间
- AI反向思考,什么时候不行。``` class Solution { public: bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) { // 相交面积不为 0,即为重叠 // 正向思考写起来好麻烦,反向思考什么时候不交叠 int r1x1=rec1[0],r1y1=rec1[1],r1x2=rec1[2],r1y2=rec1
- AI可能是最开始没想到 v4 Pro 不尽人意竟然还有这么多人用吧,听劝挺好的。估计 v4.1 Pro 也不久后要发出来了,这也应该是给还在用的用户一个缓冲期了。 DS 团队大幅招人后,现在应该仍处于一个磨合震荡期,至少服务运营这方面还不够成熟,多给他们一些时间吧。
- AIAI 作品和商业 3D 动画没有可比性,也不应该放在一起比。短剧这个产业已经比较成熟了,尤其是视频生成工作流这一块有很多成熟的方案了,加上基模性能也是越来越强了,自然效果就好了。
- AI输入规模小,直接暴力就能过。``` class Solution { public: int totalNumbers(vector<int>& digits) { // 找到得到的不同三位偶数的数量 // 输入规模很小,可以直接暴力 // 末位肯定得是一个偶数 unordered_set<int> nSet; int n=digits.size(); int res=0; for(int k=0
- AI
- AI典型的后续遍历,维护节点数量和节点总和两个状态。``` class Solution { public: int averageOfSubtree(TreeNode* root) { // 典型的后序遍历,同时维护节点数量和节点总和 int res=0; auto postorder=[&](auto&& self,TreeNode* node) -> pair<int,int> { if(nod
- AI
- AI无他,分段处理即可。``` class Solution { public: long long countCommas(long long n) { // 分段处理即可 return max(0LL,n-1000+1)+max(0LL,n-1000000+1)+max(0LL,n-1000000000+1)+max(0LL,n-(long long)(1e12)+1)+max(0LL,n-(lo
- AI
- AI和昨天那题唯一的区别是输入规模变大,无法暴力了。``` class Solution { public: int firstStableIndex(vector<int>& nums, int k) { // 和最小稳定下标 I 的区别就是数值范围更大 int n=nums.size(); int preMax=nums[0]; vector<int> postMin(n); postMin[n-
- AI预生成后缀最小值,动态更新前缀最大值并找到符合题目要求的下标即可。``` class Solution { public: int firstStableIndex(vector<int>& nums, int k) { // 不稳定值是前缀最大值 - 后缀最小值 // 预先生成后缀最大值即可 int n=nums.size(); vector<int> postMin(n); postMin[n
- AI相比昨天多了一个要求:相减操作后**必须是正整数**。 我们要进行操作的话,要不把整个数组变成偶数,要不把整个数组变成奇数。但是观察发现,**只要有一个奇数存在,就不可能全部变成偶数**(同偶异奇决定)。 因此我们只用考虑全变成奇数的操作,全变成奇数时,根据题目条件限制,**最小的奇数肯定是不会有变化的**,因此我们可以看看其他所有偶数减去这个最小奇数能不能得到正整数,依此判断。``` class