大膽預測:計算機將要回暖

中概財報集體亮眼

雖然最近幾天恒指(港股)稍有回落,但年線仍有 9% 的上漲。

過去三年,恒指分別下跌 14.08%、15.46% 和 13.82%。

而在近期,國內各大互聯網都公布了財報,別看各個大廠的作妖不斷,但這次似乎真的有點「否極泰來」的意思了:

  • 騰訊凈利潤 418.89 億,同比增長 62.12%

  • 拼多多凈利潤 279.98 億,同比增長 245.61%

  • 阿里凈利潤 244.18 億,同比增長 -10.80%

  • 網易凈利潤 76.34 億,同比增長 13.02%

  • 京東凈利潤 71.30 億,同比增長 13.88%

  • 小米凈利潤 64.9 億,同比增長 100%

  • 百度凈利潤 54.48 億,同比增長 -6.47%

  • 攜程凈利潤 43.12 億,同比增長 27.76%

  • 快手凈利潤 41.19 億,同比增長 571.82%

現在提到「互聯網」和「計算機」,大多數聲音還都是「裁員」、「人擠人」和「找不到工作」,但財務數據才是真實的,而且從「金融資本市場」到「勞動力市場」往往有 1~2 年的滯后性。

現在往回看,其實國內互聯網的轉向是從 2021 年年初就開始的,但 2021 年的招聘市場,大家都知道的。流行語是「打得火熱」、「跳槽薪資翻倍」和「應屆生實習工資水漲船高,直接倒掛老員工」,所謂的「裁員」和「寒氣」是從 2022 下半年才開始大面積盛行的。

所以根據現在掌握的信息來看,我可以大膽給出結論:計算機看不到希望的長夜已經過去,回暖是大概率的事情。

我給大家的建議,抓緊學習,厚積薄發,好日子快回來了。

如果因為現在的行情決定「轉行」或者「放棄轉碼」,大概率不會變得更好,而且可能還會成為倒在黎明的那一批。

...

回歸主題。

來一道和「字節跳動」相關的題目(不要問我為啥最近都是字節跳動,宇宙廠的投稿太多了 🤣

題目描述

平臺:LeetCode

題號:940

給定一個字符串 s,計算 s 的 不同非空子序列 的個數。

因為結果可能很大,所以返回答案需要對 取余 。

字符串的 子序列 是經由原字符串刪除一些(也可能不刪除)字符但不改變剩余字符相對位置的一個新字符串。

例如,"ace""abcde" 的一個子序列,但 "aec" 不是。

示例 1:

輸入:s?=?"abc"

輸出:7

解釋:7?個不同的子序列分別是?"a",?"b",?"c",?"ab",?"ac",?"bc",?以及?"abc"

示例 2:

輸入:s?=?"aba"

輸出:6

解釋:6?個不同的子序列分別是?"a",?"b",?"ab",?"ba",?"aa"?以及?"aba"

示例 3:

輸入:s?=?"aaa"

輸出:3

解釋:3?個不同的子序列分別是?"a",?"aa"?以及?"aaa"

提示:

  • s 僅由小寫英文字母組成

序列 DP

為了方便,我們令 s 下標從 1 開始,定義 為考慮前 i 個字符,且結尾字符為 j 的不同子序列的個數,其中 j 的范圍為 代指小寫字符 a-z

我們有顯而易見的初始化條件 ,最終答案為

不失一般性考慮 該如何轉移,根據 是否為 j 進行分情況討論:

  • : 由于狀態定義限定了結尾字符必須是 ,因而 必然不會用到,此時有:
  • : 此時 可作為結尾元素,同時由于我們統計的是「不同」的子序列個數,因而「以 結尾的子序列方案數」與「以 結尾的子序列方案數」完全等價。 對于以 作為子序列結尾字符的方案數,容易想到其方案數等于「 單獨作為子序列」+「 拼接在其余子序列后面形成新子序列」,即有:

Java 代碼:

class?Solution?{
????int?MOD?=?(int)1e9+7;
????public?int?distinctSubseqII(String?s)?{
????????int?n?=?s.length(),?ans?=?0;
????????int[][]?f?=?new?int[n?+?1][26];
????????for?(int?i?=?1;?i?<=?n;?i++)?{
????????????int?c?=?s.charAt(i?-?1)?-?'a';
????????????for?(int?j?=?0;?j?<?26;?j++)?{
????????????????if?(c?!=?j)?{
????????????????????f[i][j]?=?f[i?-?1][j];
????????????????}?else?{
????????????????????int?cur?=?1;
????????????????????for?(int?k?=?0;?k?<?26;?k++)?cur?=?(cur?+?f[i?-?1][k])?%?MOD;
????????????????????f[i][j]?=?cur;
????????????????}
????????????}
????????}
????????for?(int?i?=?0;?i?<?26;?i++)?ans?=?(ans?+?f[n][i])?%?MOD;
????????return?ans;
????}
}

C++ 代碼:

class?Solution?{
public:
????int?distinctSubseqII(string?s)?{
????????int?n?=?s.length(),?MOD?=?1e9?+?7;
????????vector<vector<int>>?f(n?+?1,?vector<int>(26,?0));
????????for?(int?i?=?1;?i?<=?n;?++i)?{
????????????int?c?=?s[i?-?1]?-?'a';
????????????for?(int?j?=?0;?j?<?26;?++j)?{
????????????????if?(c?!=?j)?{
????????????????????f[i][j]?=?f[i?-?1][j];
????????????????}?else?{
????????????????????int?cur?=?1;
????????????????????for?(int?k?=?0;?k?<?26;?++k)?cur?=?(cur?+?f[i?-?1][k])?%?MOD;
????????????????????f[i][j]?=?cur;
????????????????}
????????????}
????????}
????????int?ans?=?0;
????????for?(int?i?=?0;?i?<?26;?++i)?ans?=?(ans?+?f[n][i])?%?MOD;
????????return?ans;
????}
};

Python 代碼:

class?Solution:
????def?distinctSubseqII(self,?s:?str)?->?int:
????????n,?MOD?=?len(s),?1e9+7
????????f?=?[[0]?*?26?for?_?in?range(n?+?1)]
????????for?i?in?range(1,?n?+?1):
????????????c?=?ord(s[i?-?1])?-?ord('a')
????????????for?j?in?range(26):
????????????????f[i][j]?=?f[i?-?1][j]?if?c?!=?j?else?(1?+?sum(f[i?-?1]))?%?MOD
????????return?int(sum(f[n])?%?MOD)

TypeScript 代碼:

function?distinctSubseqII(s:?string):?number?{
????const?MOD?=?1e9+7
????let?n?=?s.length,?ans?=?0
????const?f?=?new?Array<Array<number>>(n?+?1)
????for?(let?i?=?0;?i?<=?n;?i++)?f[i]?=?new?Array<number>(26).fill(0)
????for?(let?i?=?1;?i?<=?n;?i++)?{
????????const?c?=?s.charCodeAt(i?-?1)?-?'a'.charCodeAt(0)
????????for?(let?j?=?0;?j?<?26;?j++)?{
????????????if?(c?!=?j)?{
????????????????f[i][j]?=?f[i?-?1][j]
????????????}?else?{
????????????????let?cur?=?1
????????????????for?(let?k?=?0;?k?<?26;?k++)?cur?=?(cur?+?f[i?-?1][k])?%?MOD
????????????????f[i][j]?=?cur
????????????}
????????}
????}
????for?(let?i?=?0;?i?<?26;?i++)?ans?=?(ans?+?f[n][i])?%?MOD
????return?ans
}
  • 時間復雜度: ,其中 為字符集大小
  • 空間復雜度:

轉移優化

根據轉移的依賴關系,實現上,我們并不需要真正記錄每一個 ,而可以直接記錄一個總的不同子序列方案數 ans

這可以避免每次計算新狀態時,都累加前一個 的值,有效減低時空復雜度。

Java 代碼:

class?Solution?{
????int?MOD?=?(int)1e9+7;
????public?int?distinctSubseqII(String?s)?{
????????int?n?=?s.length(),?ans?=?0;
????????int[]?f?=?new?int[26];
????????for?(int?i?=?0;?i?<?n;?i++)?{
????????????int?c?=?s.charAt(i)?-?'a',?prev?=?f[c];
????????????f[c]?=?(ans?+?1)?%?MOD;
????????????ans?=?(ans?+?f[c])?%?MOD;
????????????ans?=?(ans?-?prev?+?MOD)?%?MOD;
????????}
????????return?ans;
????}
}

C++ 代碼:

class?Solution?{
public:
????int?distinctSubseqII(string?s)?{
????????int?n?=?s.length(),?ans?=?0,?MOD?=?1e9?+?7;
????????vector<int>?f(26,?0);
????????for?(int?i?=?0;?i?<?n;?++i)?{
????????????int?c?=?s[i]?-?'a',?prev?=?f[c];
????????????f[c]?=?(ans?+?1)?%?MOD;
????????????ans?=?(ans?+?f[c])?%?MOD;
????????????ans?=?(ans?-?prev?+?MOD)?%?MOD;
????????}
????????return?ans;
????}
};

Python 代碼:

class?Solution:
????def?distinctSubseqII(self,?s:?str)?->?int:
????????n,?MOD,?ans?=?len(s),?1e9+7,?0
????????f?=?[0]?*?26
????????for?i?in?range(n):
????????????c?=?ord(s[i])?-?ord('a')
????????????prev?=?f[c]
????????????f[c]?=?(ans?+?1)?%?MOD
????????????ans?=?(ans?+?f[c]?-?prev)?%?MOD????????????
????????return?int(ans)

TypeScript 代碼:

function?distinctSubseqII(s:?string):?number?{
????const?MOD?=?1e9+7
????let?n?=?s.length,?ans?=?0
????const?f?=?new?Array<number>(26).fill(0)
????for?(let?i?=?0;?i?<?n;?i++)?{
????????const?c?=?s.charCodeAt(i)?-?'a'.charCodeAt(0),?prev?=?f[c]
????????f[c]?=?(ans?+?1)?%?MOD
????????ans?=?(ans?+?f[c])?%?MOD
????????ans?=?(ans?-?prev?+?MOD)?%?MOD
????}
????return?ans
}
  • 時間復雜度:
  • 空間復雜度:

最后

給大伙通知一下 📢 :

全網最低價 LeetCode 會員目前仍可用 ~

📅 年度會員:有效期加贈兩個月!!; 季度會員:有效期加贈兩周!!

🧧 年度會員:獲 66.66 現金紅包!!; 季度會員:獲 22.22 現金紅包!!

🎁 年度會員:參與當月豐厚專屬實物抽獎(中獎率 > 30%)!!

專屬鏈接:leetcode.cn/premium/?promoChannel=acoier

我是宮水三葉,每天都會分享算法知識,并和大家聊聊近期的所見所聞。

歡迎關注,明天見。

更多更全更熱門的「筆試/面試」相關資料可訪問排版精美的 合集新基地 🎉🎉

本文由 mdnice 多平臺發布

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15338.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15338.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15338.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[前端|vue] v-if 和v-show的區別,為什么功能會類似

v-if 和 v-show 都是 Vue 中用于條件渲染的指令&#xff0c;但它們之間存在幾個關鍵區別&#xff0c;這些區別導致了它們在不同場景下的適用性也有所不同&#xff1a; v-if 的特點&#xff1a; 條件渲染&#xff1a;v-if 是一個動態的條件渲染指令&#xff0c;它會根據表達式的…

dubbo復習:(8)使用sentinel對服務進行降級

一、下載sentinel-dashboard控制臺應用并在8080端口啟動 二、項目添加springboot 和dubbo相關依賴&#xff08;降級規則并未持久化&#xff0c;如果需要持久化&#xff0c;如果需要持久化降級規則&#xff0c;只需增加nacos相關依賴并在nacos中進行配置&#xff0c;然后配置app…

會話機制:Session

1、什么是會話&#xff1a; 會話對應的英語單詞&#xff1a;session 用戶打開瀏覽器&#xff0c;進行一系列操作&#xff0c;然后最終將瀏覽器關閉&#xff0c;這個整個過程叫做&#xff1a;一次會話。會話在服務器端也有一個對應的java對象&#xff0c;這個java對象叫做&…

使用Python Tkinter創建GUI應用程序

大家好&#xff0c;當我們談及使用Python Tkinter創建GUI應用程序時&#xff0c;我們涉及的不僅是技術和代碼&#xff0c;更是關于創造力和用戶體驗的故事。Tkinter作為Python標準庫中最常用的GUI工具包&#xff0c;提供了豐富的功能和靈活的接口&#xff0c;讓開發者能夠輕松地…

每日一題(4)——String連接,替換,比較,查找等

主要是一些字符串的連接&#xff0c; 替換&#xff0c;比較&#xff0c;去首尾空格&#xff0c;查找等操作&#xff1b; class ZiFu{public static void main(String []args){String s1"hello world";String s2new String("hello,world");s2" "…

Vue3判斷變量和對象不為null和undefined

Vue3判斷變量和對象不為null和undefined 一、判斷變量二、判斷對象 一、判斷變量 在 Vue 3 中&#xff0c;你可以使用 JavaScript 提供的常規方式來檢查變量是否不為 null 和不為 undefined。你可以分別使用嚴格不等運算符 ! 來比較變量是否不為 null 和不為 undefined。以下是…

【基于springboot+vue的房屋租賃系統】

介紹 本系統是基于springbootvue的房屋租賃系統&#xff0c;數據庫為mysql&#xff0c;可用于日常學習和畢設&#xff0c;系統分為管理員、房東、用戶&#xff0c;部分截圖如下所示&#xff1a; 部分界面截圖 用戶 管理員 聯系我 微信&#xff1a;Zzllh_

打開服務器遠程桌面連接不上,可能的原因及相應的解決策略

在解決遠程桌面連接不上服務器的問題時&#xff0c;我們首先需要從專業的角度對可能的原因進行深入分析&#xff0c;并據此提出針對性的解決方案。以下是一些可能的原因及相應的解決策略&#xff1a; 一、網絡連接問題 遠程桌面連接需要穩定的網絡支持&#xff0c;如果網絡連接…

金融業務及其他學習資料相關

目錄 金融業務相關學習資料 道路交通安全考試科一學習資料(2023年版) 英語學習資料

ArcGIS提取含有計曲線的等高線

喜歡就關注我們吧&#xff01; 今天我么來看看&#xff0c;如何利用DEM提取含有計曲線的等高線&#xff01; 常規的話我們利用DEM提取的等高線都是不帶計曲線的&#xff0c;無法把計曲線標注出來&#xff0c;今天我們就來看下&#xff0c;如何處理一下哦&#xff01;提取帶有計…

springboot打包目錄解析

一、引言 Java開發中我們使用最多的便是spring框架&#xff0c;比如springboot應用。微服務模式下&#xff0c;每個服務都是一個springboot應用&#xff0c;都會被打包成一個可執行jar包。那么我們有多少人嘗試去了解過這個可執行jar到底是什么&#xff1f;它的結構是什么樣的…

2730. 找到最長的半重復子字符串(c++,滑動窗口)

給你一個下標從 0 開始的字符串 s &#xff0c;這個字符串只包含 0 到 9 的數字字符。 如果一個字符串 t 中至多有一對相鄰字符是相等的&#xff0c;那么稱這個字符串 t 是 半重復的 。例如&#xff0c;0010 、002020 、0123 、2002 和 54944 是半重復字符串&#xff0c;而 00…

Homebrew安裝、 Mac上pyenv的安裝與使用,復制黏貼搞定,網上教程看得眼花繚亂的來看看,簡單明了一步到胃!!

安裝 Homebrew /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"安裝pyenv brew install pyenv添加到終端使用的配置文件.zshrc、.bashrc 避免不必要的麻煩兩個終端的配置文件都進行添加&#xff0c;文件在當前用戶目…

第四十天 | 509.斐波那契數 70.爬樓梯 746.用最小花費爬樓梯

題目&#xff1a;509.斐波那契數 思路&#xff1a; 1.確定dp[i]含義&#xff1a;第i個斐波拉契數值為dp[i] 2.確定遞推公式&#xff1a;dp[i] dp[i - 1] dp[i - 2] 3.dp數組如何初始化&#xff1a;d[0] 1, dp[1] 1 4.遍歷順序&#xff1a;從前向后 5.打印dp class Soluti…

C語言代碼文件開頭需要的代碼

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>

淚目!網絡連接中斷的原因,終于找到了!

朋友們&#xff0c;出大事了&#xff01; 不知道多少朋友玩過 DNF 這個游戲&#xff0c;這個我從小學玩到大學的 “破” 游戲&#xff0c;昨天竟然出手游了&#xff01; 我都忘了自己曾幾何時預約過這個手游通知&#xff0c;昨天給我發了條通知信息說游戲已開服。 老玩家直接…

Gitee好用的瀏覽器插件【GiteeTree】

使用gitee的時候&#xff0c;可能拉到別人的項目后&#xff0c;只是想看下某些文件的代碼&#xff0c;但是不得不全部都拉下來&#xff0c;每次點又很麻煩。這個插件【GiteeTree】就很好用了&#xff0c;只需要搜索GiteeTree&#xff0c;然后把插件下載下來

git revert 和 git reset

文章目錄 工作區 暫存區 本地倉庫 遠程倉庫需求&#xff1a;已推送到遠程倉庫&#xff0c;想要撤銷操作git revert &#xff08;添加新的提交來“反做”之前的更改&#xff0c;云端會殘留上次的提交記錄&#xff09;git reset&#xff08;相當于覆蓋上次的提交&#xff09;1.--…

中國科學院植物研究所宋獻軍課題組揭示不同的翻譯后修飾協作調控水稻種子大小的新機制

公眾號&#xff1a;生信漫談&#xff0c;獲取最新科研信息&#xff01; 中國科學院植物研究所宋獻軍課題組揭示不同的翻譯后修飾協作調控水稻種子大小的新機制https://mp.weixin.qq.com/s/ycNgYzACwkYZbo6k0Zqtcw 未來20年&#xff0c;我國將決戰全面建成社會主義現代化國家&…

MySQL筆記第三天(從小白到入門)

文章目錄 MySQL筆記SQL語言介紹數據庫系統關系型數據庫非關系型數據庫SQL和數據庫系統的關系數據庫系統架構 MySQL的介紹概念MySQL的版本 MySQL的DDL操作-重點基本數據庫操作基本表操作 MySQL的DML操作-重點insert-插入數據update-更新數據delete-刪除數據 MySQL的約束-了解概述…