国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

html網(wǎng)站發(fā)布高端網(wǎng)站建設(shè)

html網(wǎng)站發(fā)布,高端網(wǎng)站建設(shè),來(lái)個(gè)網(wǎng)站,網(wǎng)站備案 代辦問(wèn)題描述: 給定一個(gè)下標(biāo)從 0 開(kāi)始的正整數(shù)數(shù)組 nums&#xff0c;我們的目標(biāo)是找出并統(tǒng)計(jì)滿足下述條件的三元組 (i, j, k) 的數(shù)目&#xff1a; 0 < i < j < k < nums.length&#xff0c;這確保了三元組索引的順序性。nums[i]、nums[j] 和 nums[k] 兩…

問(wèn)題描述:? ? ? ? ? ? ?

給定一個(gè)下標(biāo)從 0 開(kāi)始的正整數(shù)數(shù)組?nums,我們的目標(biāo)是找出并統(tǒng)計(jì)滿足下述條件的三元組?(i, j, k)?的數(shù)目:

  1. 0 <= i < j < k < nums.length,這確保了三元組索引的順序性。
  2. nums[i]、nums[j]?和?nums[k]?兩兩不同,即?nums[i]!= nums[j]、nums[i]!= nums[k]?且?nums[j]!= nums[k]

暴力解法 - 三層循環(huán)遍歷

最直觀的解法就是使用三層嵌套循環(huán)來(lái)遍歷數(shù)組的所有可能組合

#include <stdio.h>// 函數(shù)定義,用于找出滿足條件的三元組數(shù)量
int unequalTriplets(int* nums, int numsSize) {int count = 0;for (int i = 0; i < numsSize - 2; i++) {for (int j = i + 1; j < numsSize - 1; j++) {for (int k = j + 1; k < numsSize; k++) {if (nums[i]!= nums[j] && nums[i]!= nums[k] && nums[j]!= nums[k]) {count++;}}}}return count;
}int main() {int nums[] = {1, 2, 3, 4};  // 示例數(shù)組,你可以替換成其他測(cè)試數(shù)組int numsSize = sizeof(nums) / sizeof(nums[0]);int result = unequalTriplets(nums, numsSize);printf("滿足條件的三元組數(shù)目為: %d\n", result);return 0;
}

在這段代碼中:

  • 最外層循環(huán)控制第一個(gè)索引?i,它從數(shù)組起始位置開(kāi)始,一直到倒數(shù)第 3 個(gè)位置(因?yàn)楹竺孢€需要留出?j?和?k?的位置)。
  • 中間層循環(huán)控制第二個(gè)索引?j,它從?i + 1?開(kāi)始,確保?j > i,到倒數(shù)第 2 個(gè)位置。
  • 最內(nèi)層循環(huán)控制第三個(gè)索引?k,從?j + 1?開(kāi)始,保證?k > j,直到數(shù)組末尾。
  • 在內(nèi)層循環(huán)里,每次都檢查當(dāng)前的三個(gè)元素是否兩兩不等,如果是,就將計(jì)數(shù)變量?count?加 1。最終,count?存儲(chǔ)的就是滿足條件的三元組數(shù)量。

這種解法簡(jiǎn)單直接,但時(shí)間復(fù)雜度高達(dá)?o(n^{3}),其中?n?是數(shù)組?nums?的長(zhǎng)度。在大規(guī)模數(shù)據(jù)面前,性能會(huì)急劇下降。

優(yōu)化解法 - 計(jì)數(shù)與組合數(shù)學(xué)原理

為了提升效率,我們可以換個(gè)思路。先統(tǒng)計(jì)數(shù)組中每個(gè)數(shù)字出現(xiàn)的頻次,再利用組合數(shù)學(xué)的原理來(lái)計(jì)算滿足條件的三元組數(shù)量。

#include <stdio.h>// 函數(shù)定義,用于找出滿足條件的三元組數(shù)量
int unequalTriplets(int* nums, int numsSize) {int count = 0;// 用于記錄每個(gè)數(shù)字出現(xiàn)的次數(shù)int num_count[1001] = {0};for (int i = 0; i < numsSize; i++) {num_count[nums[i]]++;}int left = 0;int right = numsSize;for (int i = 0; i < 1001; i++) {if (num_count[i] > 0) {right -= num_count[i];count += left * num_count[i] * right;left += num_count[i];}}return count;
}int main() {int nums[] = {1, 2, 3, 4};  // 示例數(shù)組,你可以替換成其他測(cè)試數(shù)組int numsSize = sizeof(nums) / sizeof(nums[0]);int result = unequalTriplets(nums, numsSize);printf("滿足條件的三元組數(shù)目為: %d\n", result);return 0;
}
  • 首先,創(chuàng)建一個(gè)大小為?1001?的數(shù)組?num_count(假設(shè)數(shù)組中的數(shù)字最大不超過(guò)?1000,可根據(jù)實(shí)際情況調(diào)整),用于記錄每個(gè)數(shù)字在?nums?數(shù)組里出現(xiàn)的頻次。通過(guò)一次遍歷?nums?數(shù)組,將每個(gè)數(shù)字對(duì)應(yīng)的頻次在?num_count?中累加。
  • 接著,使用兩個(gè)變量?left?和?right。left?初始化為 0,表示當(dāng)前數(shù)字左邊不同數(shù)字的個(gè)數(shù);right?初始化為數(shù)組長(zhǎng)度?numsSize,代表當(dāng)前數(shù)字右邊不同數(shù)字的個(gè)數(shù)。
  • 遍歷?num_count?數(shù)組時(shí),每當(dāng)遇到一個(gè)數(shù)字出現(xiàn)次數(shù)不為 0:
    • 先更新?right,將其減去當(dāng)前數(shù)字的出現(xiàn)次數(shù),因?yàn)檫@些數(shù)字已經(jīng)被算到當(dāng)前位置左邊或當(dāng)前位置了,不能再算在右邊。
    • 根據(jù)組合數(shù)學(xué)原理,當(dāng)前數(shù)字與左邊不同數(shù)字和右邊不同數(shù)字能組成的滿足條件三元組數(shù)量為?left * num_count[i] * right,累加到?count?中。
    • 最后更新?left,將當(dāng)前數(shù)字的出現(xiàn)次數(shù)累加到?left?上,準(zhǔn)備處理下一個(gè)數(shù)字。

這種優(yōu)化后的解法時(shí)間復(fù)雜度降低到?,其中?n?是數(shù)組?nums?的長(zhǎng)度,m?是數(shù)組中不同數(shù)字的個(gè)數(shù)。相比暴力解法,大大提高了計(jì)算效率。

總結(jié)與拓展:

從簡(jiǎn)單直接但低效的暴力解法,到巧妙利用數(shù)據(jù)統(tǒng)計(jì)和數(shù)學(xué)原理的高效解法,效率得到了質(zhì)的飛躍。在實(shí)際編程中,面對(duì)類(lèi)似問(wèn)題,我們應(yīng)多思考數(shù)據(jù)的內(nèi)在規(guī)律,嘗試從不同角度去拆解問(wèn)題,運(yùn)用合適的數(shù)學(xué)知識(shí)或數(shù)據(jù)結(jié)構(gòu)來(lái)優(yōu)化算法。

希望通過(guò)這篇博客,大家對(duì)數(shù)組計(jì)數(shù)類(lèi)算法問(wèn)題有了更清晰的理解,也能在日后的編程實(shí)踐中靈活運(yùn)用這些思路去攻克難題。

?

http://m.aloenet.com.cn/news/43872.html

相關(guān)文章:

  • php網(wǎng)站建設(shè)帶數(shù)據(jù)庫(kù)模板網(wǎng)店關(guān)鍵詞怎么優(yōu)化
  • 企業(yè)網(wǎng)站上的二維碼怎么獲得手游推廣賺傭金的平臺(tái)
  • wordpress如何導(dǎo)出數(shù)據(jù)寧波優(yōu)化關(guān)鍵詞首頁(yè)排名
  • 以網(wǎng)站域名做郵箱怎樣做企業(yè)宣傳推廣
  • 黃頁(yè)88網(wǎng)全自動(dòng)錄播系統(tǒng)寧波百度推廣優(yōu)化
  • 如何給網(wǎng)站添加搜索關(guān)鍵字網(wǎng)絡(luò)營(yíng)銷(xiāo)有哪些方式
  • web畢業(yè)設(shè)計(jì)題目西安seo王塵宇
  • 百度網(wǎng)站做防水補(bǔ)漏seo01
  • 醫(yī)療類(lèi)網(wǎng)站源碼網(wǎng)絡(luò)推廣網(wǎng)上營(yíng)銷(xiāo)
  • 網(wǎng)頁(yè)創(chuàng)建網(wǎng)站如何免費(fèi)自己創(chuàng)建網(wǎng)站
  • asp.net旅游網(wǎng)站管理系統(tǒng)代碼軟文推廣多少錢(qián)一篇
  • 做網(wǎng)站專(zhuān)題需要什么軟件湖南靠譜關(guān)鍵詞優(yōu)化
  • 長(zhǎng)治做網(wǎng)站公司網(wǎng)絡(luò)服務(wù)公司
  • 購(gòu)物網(wǎng)站 服務(wù)器 帶寬 多大360搜索引擎地址
  • 網(wǎng)站開(kāi)發(fā)怎么使用sharepoint網(wǎng)站推廣優(yōu)化外包便宜
  • 企業(yè)做的網(wǎng)站推廣方案的步驟深圳網(wǎng)站建設(shè)哪家好
  • 公司網(wǎng)站建設(shè)需要什么資質(zhì)購(gòu)物網(wǎng)站頁(yè)面設(shè)計(jì)
  • 怎么選擇一家好的網(wǎng)站建設(shè)公司360優(yōu)化大師
  • 網(wǎng)站制作哪家專(zhuān)業(yè)微商怎么找客源人脈
  • 公司企業(yè)網(wǎng)站免費(fèi)建設(shè)網(wǎng)絡(luò)營(yíng)銷(xiāo)促銷(xiāo)方案
  • 做極速賽車(chē)網(wǎng)站公眾號(hào)推廣
  • 在百度網(wǎng)站備案查詢上顯示未備案是什么意思網(wǎng)頁(yè)設(shè)計(jì)素材
  • 所有政府網(wǎng)站必須做等保嗎sem運(yùn)營(yíng)是什么意思
  • 政務(wù)服務(wù) 網(wǎng)站 建設(shè)方案朋友圈推廣平臺(tái)
  • 網(wǎng)站收錄低的原因百度云網(wǎng)頁(yè)版登錄入口
  • 住房城鄉(xiāng)建設(shè)部辦公廳網(wǎng)站口碑營(yíng)銷(xiāo)公司
  • 番禺區(qū)網(wǎng)站設(shè)計(jì)線上推廣的方式有哪些
  • 關(guān)于做美食的小視頻網(wǎng)站晚上免費(fèi)b站軟件
  • 石家莊個(gè)人誰(shuí)做網(wǎng)站廈門(mén)百度關(guān)鍵詞推廣
  • 網(wǎng)站優(yōu)化怎樣做網(wǎng)絡(luò)營(yíng)銷(xiāo)整合推廣