中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

福州電子商務(wù)網(wǎng)站在線識(shí)別圖片

福州電子商務(wù)網(wǎng)站,在線識(shí)別圖片,thinkphp3.2 企業(yè)網(wǎng)站源碼,購(gòu)物網(wǎng)站的經(jīng)營(yíng)要素【每日一題】LeetCode 2306.公司命名(位運(yùn)算、數(shù)組、哈希表、字符串、枚舉) 題目描述 給定一個(gè)字符串?dāng)?shù)組 ideas,表示在公司命名過(guò)程中使用的名字列表。我們需要從 ideas 中選擇兩個(gè)不同的名字,稱為 ideaA 和 ideaB。然后交換 i…

【每日一題】LeetCode 2306.公司命名(位運(yùn)算、數(shù)組、哈希表、字符串、枚舉)

題目描述

給定一個(gè)字符串?dāng)?shù)組 ideas,表示在公司命名過(guò)程中使用的名字列表。我們需要從 ideas 中選擇兩個(gè)不同的名字,稱為 ideaAideaB。然后交換 ideaAideaB 的首字母。如果交換后得到的兩個(gè)新名字都不在 ideas 中,那么這兩個(gè)名字串聯(lián)起來(lái)(中間用一個(gè)空格分隔)就是一個(gè)有效的公司名字。我們需要返回不同且有效的公司名字的總數(shù)。

在這里插入圖片描述

輸入示例

示例 1:

輸入:ideas = ["coffee","donuts","time","toffee"]
輸出:6
解釋:下面列出一些有效的選擇方案:
- ("coffee", "donuts"):對(duì)應(yīng)的公司名字是 "doffee conuts" 。
- ("donuts", "coffee"):對(duì)應(yīng)的公司名字是 "conuts doffee" 。
- ("donuts", "time"):對(duì)應(yīng)的公司名字是 "tonuts dime" 。
- ("donuts", "toffee"):對(duì)應(yīng)的公司名字是 "tonuts doffee" 。
- ("time", "donuts"):對(duì)應(yīng)的公司名字是 "dime tonuts" 。
- ("toffee", "donuts"):對(duì)應(yīng)的公司名字是 "doffee tonuts" 。
因此,總共有 6 個(gè)不同的公司名字。下面列出一些無(wú)效的選擇方案:
- ("coffee", "time"):在原數(shù)組中存在交換后形成的名字 "toffee" 。
- ("time", "toffee"):在原數(shù)組中存在交換后形成的兩個(gè)名字。
- ("coffee", "toffee"):在原數(shù)組中存在交換后形成的兩個(gè)名字。

示例 2:

輸入:ideas = ["lack","back"]
輸出:0
解釋:不存在有效的選擇方案。因此,返回 0 。

提示

  • 2 <= ideas.length <= 5 * 10^4
  • 1 <= ideas[i].length <= 10
  • ideas[i] 由小寫英文字母組成
  • ideas 中的所有字符串互不相同

思路分析

  1. 遇到困難題,我們先可以嘗試暴力枚舉,然后再逐步優(yōu)化!
  2. 首先,我們將 ideas 數(shù)組中的所有字符串添加到一個(gè) HashSet 中,以便快速檢查某個(gè)字符串是否在 ideas 中。
  3. 然后,我們使用兩層循環(huán)遍歷 ideas 數(shù)組,外層循環(huán)選擇 ideaA,內(nèi)層循環(huán)選擇 ideaB
  4. 對(duì)于每一對(duì) ideaAideaB,我們交換它們的首字母,得到兩個(gè)新的名字 newIdea1newIdea2。
  5. 我們檢查這兩個(gè)新名字是否都不在 ideas 中。如果不在,那么這是一個(gè)有效的公司名字,計(jì)數(shù)器 count 增加。
  6. 由于每一對(duì) ideaAideaB 可以交換兩次(ideaAideaBideaBideaA),所以我們需要將最終的計(jì)數(shù)器 count 乘以 2。

代碼實(shí)現(xiàn)(暴力枚舉)

class Solution {public long distinctNames(String[] ideas) {// 將所有名字存入HashSet中,方便快速查找HashSet<String> set = new HashSet<>();for (String idea : ideas) {set.add(idea);}// 初始化計(jì)數(shù)器long count = 0;int n = ideas.length;// 外層循環(huán)遍歷選擇ideaAfor (int i = 0; i < n; i++) {char firstChar1 = ideas[i].charAt(0); // 獲取ideaA的首字母// 內(nèi)層循環(huán)遍歷選擇ideaB,從i+1開始避免重復(fù)for (int j = i + 1; j < n; j++) {char firstChar2 = ideas[j].charAt(0); // 獲取ideaB的首字母// 交換首字母后的新名字String newIdea1 = firstChar2 + ideas[i].substring(1);String newIdea2 = firstChar1 + ideas[j].substring(1);// 如果兩個(gè)新名字都不在ideas中,那么這是一個(gè)有效的公司名字if (!set.contains(newIdea1) && !set.contains(newIdea2)) {count++;}}}// 由于每一對(duì)可以交換兩次,所以最終結(jié)果需要乘以2return count * 2;}
}

##思路優(yōu)化

  1. 我們可以使用一個(gè)數(shù)組 groups 來(lái)存儲(chǔ)按首字母分組的后綴。
  2. 遍歷 ideas 數(shù)組,將每個(gè)字符串的后綴(去掉首字母的部分)添加到對(duì)應(yīng)的 HashSet 中。
  3. 使用兩層循環(huán)遍歷 groups 數(shù)組,外層循環(huán)選擇首字母 i,內(nèi)層循環(huán)選擇首字母 j(從 i+1 開始,避免重復(fù)計(jì)算)。
  4. 對(duì)于每一對(duì)首字母 ij,我們統(tǒng)計(jì)它們共有的后綴數(shù)量 m。
  5. 計(jì)算可以形成的不同名稱的數(shù)量,即 (groups[i].size() - m) * (groups[j].size() - m)。
  6. 由于每一對(duì) ideaAideaB 可以交換兩次(ideaAideaBideaBideaA),所以我們需要將最終的計(jì)數(shù)器 count 乘以 2。

##代碼實(shí)現(xiàn)(思路優(yōu)化)

class Solution {public long distinctNames(String[] ideas) {// 開一個(gè)set數(shù)組存儲(chǔ)后綴HashSet<String>[] groups = new HashSet[26];for (int i = 0; i < 26; i++) {groups[i] = new HashSet<>(); }// 將每個(gè)字符串的后綴按照首字母分組for (String str : ideas) {groups[str.charAt(0) - 'a'].add(str.substring(1)); // 將后綴加入到對(duì)應(yīng)的 HashSet 中}long count = 0;// 兩層循環(huán)遍歷所有可能的首字母組合for (int i = 0; i < 26; i++) {for (int j = i + 1; j < 26; j++) {int m = 0; // 計(jì)數(shù)相同后綴的數(shù)量// 統(tǒng)計(jì) i 組和 j 組中相同的后綴數(shù)量for (String s : groups[i]) {if (groups[j].contains(s)) {m++;}}// 計(jì)算 i 組和 j 組可以形成的不同名稱的數(shù)量count += (long)((groups[i].size() - m) * (groups[j].size() - m));}}return count * 2; // 每對(duì)組合可以有兩種排列,因此乘以 2}
}

效公司名字的總數(shù)。

http://m.risenshineclean.com/news/58048.html

相關(guān)文章:

  • 德州匯澤網(wǎng)站建設(shè)seo發(fā)貼軟件
  • 公司設(shè)計(jì)網(wǎng)站搜索引擎營(yíng)銷的名詞解釋
  • 禮品網(wǎng)站制作免費(fèi)推廣
  • 網(wǎng)站開發(fā) xmind營(yíng)銷網(wǎng)站建設(shè)方案
  • 請(qǐng)問(wèn)網(wǎng)上有沒有比較好的網(wǎng)站可以做照片書的呀?要求質(zhì)量比較好的!品牌推廣方案ppt
  • 商城網(wǎng)站開發(fā)報(bào)價(jià)深圳網(wǎng)絡(luò)推廣培訓(xùn)機(jī)構(gòu)
  • 申請(qǐng)免費(fèi)建站海外seo培訓(xùn)
  • 信譽(yù)好的揚(yáng)中網(wǎng)站建設(shè)app推廣軟件有哪些
  • 四川建設(shè)廳官方網(wǎng)站文件下載企業(yè)網(wǎng)絡(luò)營(yíng)銷策略
  • p2p網(wǎng)站建設(shè) 上海網(wǎng)店代運(yùn)營(yíng)騙局
  • 做校園網(wǎng)站 怎么備案百度推廣在哪里能看到
  • 網(wǎng)站商城定制網(wǎng)站建設(shè)蘇州seo營(yíng)銷
  • 昆明網(wǎng)站開發(fā)多少錢免費(fèi)域名注冊(cè)平臺(tái)
  • 做鞋子有什么好網(wǎng)站好北京seo關(guān)鍵詞排名
  • 關(guān)于做ppt的網(wǎng)站有哪些內(nèi)容杭州百度seo代理
  • 織夢(mèng)網(wǎng)站文章內(nèi)容模板信息發(fā)布推廣平臺(tái)
  • 能訪問(wèn)各種網(wǎng)站的瀏覽器seo是什么意思 seo是什么職位
  • 網(wǎng)站開發(fā)tt0546軟文營(yíng)銷的技巧
  • 網(wǎng)站直播間怎么做2023年9月疫情又開始了嗎
  • 南寧網(wǎng)絡(luò)系統(tǒng)開發(fā)win10優(yōu)化大師是官方的嗎
  • 國(guó)外網(wǎng)站入口錦繡大地seo官網(wǎng)
  • 網(wǎng)站的內(nèi)容有哪些內(nèi)容嗎褲子seo標(biāo)題優(yōu)化關(guān)鍵詞
  • 如何在工商局網(wǎng)站做身份確認(rèn)關(guān)鍵詞搜索熱度查詢
  • 網(wǎng)站制作屬于什么行業(yè)網(wǎng)站seo具體怎么做
  • 銘萬(wàn)做的網(wǎng)站國(guó)內(nèi)設(shè)計(jì)公司前十名
  • 汽車租賃網(wǎng)站怎么做電商seo優(yōu)化是什么意思
  • 網(wǎng)站服務(wù)器服務(wù)商3d建模培訓(xùn)班一般多少錢
  • 鄭州專業(yè)網(wǎng)站設(shè)計(jì)商丘網(wǎng)絡(luò)推廣外包
  • 互聯(lián)網(wǎng)定制網(wǎng)站網(wǎng)站優(yōu)化排名推廣
  • 做瞹視頻網(wǎng)站網(wǎng)站收錄情況