三數組最小距離:2020年408算法題

題目

算法思想

題目

算法實現

復雜度分析

#define INT_MAX 0x7fffffff //c語言int類型最大值 //計算絕對值
int abs(int a){if(a<0) return -a;else return a;
}  //判斷a是否為3個數中最小值 
bool isMin(int a,int b,int c){if(a<=b&&a<=c) return true;return false;
}//主函數
int findMin(int A[],int a_len,int B[],int b_len,int C[],int c_len) {int i = 0, j = 0, k = 0, D_min = INT_MAX, D;while(i < a_len && j < b_len && k < c_len){D = abs_(A [i] -B [j]) + abs_(B [j] -C [k]) +abs_(C[k] -A[i]); //計算Dif(D < D_min) D_min=D;  //更新 D//移動最小值的下標if (isMin(A[i] ,B[j],C[k])) i++; else if(isMin(B[j],C[k],A[i])) j++;else k++;)return D_min; 
}

算法實現2(三層for循環枚舉比較找到最小值)

  • 這種算法時間復雜度為O(n3),空間復雜度為O(1)
//計算絕對值
int abs(int a){if(a<0) return -a;else return a;
} 
//主函數
int findMin(int A[],int a_len,int B[],int b_len,int C[],int c_len) {int D_min = INT_MAX;int D;for(int i = 0; i < a_len ;i++){for(int j = 0; j < b_len ;j++){for(int k = 0; k < c_len ;k++){D = abs_(A [i] -B [j]) + abs_(B [j] -C [k]) +abs_(C[k] -A[i]); //計算Dif(D_min > D){D_min = D; //若更小,則更新D_min; }}}}return D_min; 
}

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

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

相關文章

RepidJson中Writer類、FilewriteStream類、 PrettyWriter類的區別

rapidjson是一個C的JSON解析庫&#xff0c;可以用于解析和序列化JSON數據。 Writer是rapidjson中一種基本的輸出流&#xff0c;用于將JSON數據輸出到字符串或文件中。 FileWriteStream是一個Writer的子類&#xff0c;它專門用于將JSON數據輸出到文件中。相比于普通的Writer&a…

平臺工程文化:軟件開發的創新路徑和協作之道

在快速發展的軟件開發領域&#xff0c;具有前瞻性思維的企業組織正在擁抱平臺工程文化的變革力量。這種創新方法強調創建共享平臺、工具和實踐&#xff0c;使開發人員能夠更快、更高效地交付高質量的軟件。在本文中&#xff0c;我們將深入探討平臺工程文化的核心原則和深遠的好…

C語言期末考試復習PTA數據類型及表達式-分支結構程序-循環結構-數組經典選擇題

目錄 第一章&#xff1a;C語言數據類型和表達式 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題&#xff1a; 第五題&#xff1a; 第六題&#xff1a; 第七題&#xff1a; 第八題&#xff1a; 第九題&#xff1a; 第二章&#xff1a;分支結構程序…

打包 抖音直播云游戲

抖音直播云游戲 oaid資源中的bcpkix-jdk15to18-1.68.jar與抖音云游戲的資源沖突。 其實資源名稱是一樣的&#xff0c;拷貝時資源名稱有變化。 為解決此問題&#xff0c;需要規范化文件的資源名稱&#xff0c;將.置為_ Error: Command failed: cmd /c echo off && Chc…

NoSuchColumnFamilyException: org.apache.hadoop.hbase.regionserv

問題 在IDEA運行HBASE腳本時出現如下報錯&#xff1a; org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family table does not exist in region hbase:meta,,1.1588230740 i…

Java多線程并發(二)

四種線程池 Java 里面線程池的頂級接口是 Executor&#xff0c;但是嚴格意義上講 Executor 并不是一個線程池&#xff0c;而只是一個執行線程的工具。真正的線程池接口是 ExecutorService。 newCachedThreadPool 創建一個可根據需要創建新線程的線程池&#xff0c;但是在以前…

深入了解數據庫鎖:類型、應用和最佳實踐

目錄 1. 引言 2. 數據庫鎖的基本概念 2.1 悲觀鎖和樂觀鎖 2.2 排他鎖和共享鎖 3. 悲觀鎖的應用場景 3.1 長事務和大事務 3.2 并發修改 3.3 數據庫死鎖 4. 悲觀鎖的最佳實踐 4.1 精細控制鎖的粒度 4.2 避免死鎖 4.3 考慮樂觀鎖 5. 案例分析 5.1 銀行系統的轉賬操作…

【GEE筆記】隨機森林特征重要性計算并排序

隨機森林是一種基于多個決策樹的集成學習方法&#xff0c;可以用于分類和回歸問題。在gee中可以使用ee.Classifier.smileRandomForest()函數來創建一個隨機森林分類器&#xff0c;并用它來對影像進行分類。 隨機森林分類器有一個重要的屬性&#xff0c;就是可以計算每個特征&a…

人工智能虛擬化環境

人工智能虛擬化環境通過模擬、管理和優化計算資源、數據資源和軟件環境&#xff0c;可以為人工智能算法和應用提供更加高效、靈活和可靠的運行平臺。本文將探討人工智能虛擬化環境的概念、技術和應用&#xff0c;并展望其在人工智能領域的未來發展。 首先&#xff0c;人工智能…

LVGL的學習

該LVGL基于LVGL的8.2版本 開關的控件Demo lv_obj_t* switch_obj lv_switch_create(lv_scr_act());lv_obj_set_size(switch_obj, 120, 60);lv_obj_align(switch_obj, LV_ALIGN_CENTER, 0, 0); 對象&#xff1a; 對于這一類對象&#xff0c;他們有共同的屬性的幾個特征。 創建部…

.NET使用分布式網絡爬蟲框架DotnetSpider快速開發爬蟲功能

前言 前段時間有同學在微信群里提問&#xff0c;要使用.NET開發一個簡單的爬蟲功能但是沒有做過無從下手。今天給大家推薦一個輕量、靈活、高性能、跨平臺的分布式網絡爬蟲框架&#xff08;可以幫助 .NET 工程師快速的完成爬蟲的開發&#xff09;&#xff1a;DotnetSpider。 注…

Vue3組件使用問題

Vue3組件學習 文章目錄 Vue3組件學習一、Message 全局提示組件返回數據換行問題二、DatePicker 日期選擇框組件限制選定年份問題 一、Message 全局提示組件返回數據換行問題 問題&#xff1a;使用中發現僅僅通過寫入\n或<br/>&#xff0c;無法實現回車顯示的結果。 解決…

java中synchronized關鍵字的用法

在java編程中&#xff0c;經常需要用到同步&#xff0c;而用得最多的也許是synchronized關鍵字了&#xff0c;下面看看這個關鍵字的用法。因為synchronized關鍵字涉及到鎖的概念&#xff0c;所以先來了解一些相關的鎖知識。java的內置鎖&#xff1a;每個java對象都可以用做一個…

在Pytorch中使用Tensorboard可視化訓練過程

這篇是我對嗶哩嗶哩up主 霹靂吧啦Wz 的視頻的文字版學習筆記 感謝他對知識的分享 本節課我們來講一下如何在pytouch當中去使用我們的tensorboard 對我們的訓練過程進行一個可視化 左邊有一個visualizing models data and training with tensorboard 主要是這么一個教程 那么這里…

Flutter一直 Running Gradle task ‘assembleDebug‘

Flutter升級到3.13.7之后&#xff0c;一直Running Gradle task ‘assembleDebug’&#xff0c;之前運行還沒問題。 試了各種方法&#xff0c;比如添加阿里云鏡像&#xff0c;flutter\packages\flutter_tools\gradle目錄下修改build.gradle.kts文件&#xff0c;都不行。 參考大佬…

Termux+Hexo結合內網穿透輕松實現安卓手機搭建博客網站發布公網訪問

文章目錄 前言 1.安裝 Hexo2.安裝cpolar3.遠程訪問4.固定公網地址 前言 Hexo 是一個用 Nodejs 編寫的快速、簡潔且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在幾秒內&#xff0c;即可利用靚麗的主題生成靜態網頁。 下面介紹在Termux中安裝個人hexo博客并結合…

ArkTS語言難嗎?鴻蒙指南

HarmonyOS的開發語言是ArkTS、JS(JavaScript)。 ArkTS簡介 ArkTS是HarmonyOS優選的主力應用開發語言。ArkTS圍繞應用開發在TypeScript&#xff08;簡稱TS&#xff09;生態基礎上做了進一步擴展&#xff0c;繼承了TS的所有特性&#xff0c;是TS的超集。因此&#xff0c;在學習…

骨傳導耳機品牌排行榜哪家強?盤點2024年骨傳導耳機排行榜前十

隨著科技的發展&#xff0c;耳機已經從單純的音樂播放工具&#xff0c;演變為我們生活中不可或缺的伴侶。其中&#xff0c;骨傳導耳機憑借其獨特的傳聲方式&#xff0c;逐漸受到越來越多消費者的青睞。骨傳導耳機通過骨頭直接傳遞聲音&#xff0c;避免了外耳道感染和中耳疾病&a…

Java中不同轉換符實現不同數據類型到字符串的轉換

String類的format()方法用于創建格式化的字符串以及連接多個字符串對象。熟悉C語言的同學應該記得C語言的sprintf()方法&#xff0c;兩者有類似之處。format()方法有兩種重載形式。 format(String format, Object... args) 新字符串使用本地語言環境&#xff0c;制定字符串格式…

(企業項目)SpringBoot實現雪花算法id注冊功能

以下是使用 Spring Boot 實現雪花算法的完整代碼。 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class SnowflakeGeneratorApplication {public static void mai…