【LeetCode】力扣題——輪轉數組、消失的數字、數組串聯

🔥個人主頁:艾莉絲努力練劍

?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓

🍉學習方向:C/C++方向

??人生格言:為天地立心,為生民立命,為往圣繼絕學,為萬世開太平



前言:牛客網和LeetCode的刷題都不可或缺,我們都做一做,力扣的題目對提升代碼能力很有幫助,需要有一點基礎,幾乎都是接口型的題目,在C語言刷題專欄我好像還沒有介紹過這兩者的區別,那么我們來了解一下——IO型和接口型都是在線OJ的編程形式,區別在于:IO型:輸入輸出格式處理,又被稱為輸入輸出型;

接口型:特定功能模塊的邏輯實現,又被稱為函數實現型。

解釋一下,IO型就是輸入輸出要程序員自己寫,接口型則不需要。?


目錄

正文

一、用數組逆置方法求解輪轉數組

二、malloc實現數組串聯

三、異或方法求解消失的數字

結尾


正文

每一道題,博主都在力扣網站寫了題解,博主會把網址放到每個版塊開頭。

一、用數組逆置方法求解輪轉數組

189. 輪轉數組 - 力扣(LeetCode)

這道題是我們的老熟人了,我在介紹數據結構與算法中的算法復雜度一文中就分三種思路介紹過輪轉數組這道題了,所以在本文中博主就不贅述了,直接上鏈接!

【數據結構】詳解算法復雜度:時間復雜度和空間復雜度

思路

你選用何種方法解題?數組逆置

解題過程

這些方法具體怎么運用?先逆置后k次,再逆置前nums-k次,最后再整體逆置

復雜度

  • 時間復雜度:O(n)?
  • 空間復雜度:O(1)

代碼演示——

// void my_reverse(int*nums,int left,int right)
// {
//     while(left < right)
//     {
//         int tmp = nums[left];
//         nums[left] = nums[right];
//         nums[right] = tmp;//         left++;
//         right--;
//     }
// }// void rotate(int*nums,int numsSize,int k)
// {
//     k = k % numsSize;
//     my_reverse(nums,0,numsSize-k-1);
//     my_reverse(nums,numsSize-k,numsSize-1);
//     my_reverse(nums,0,numsSize-1);
// }void my_reverse(int*nums,int left,int right)
{while(left < right){int tmp = nums[left];nums[left] = nums[right];nums[right] = tmp;left++;right--;}
}void rotate(int*nums,int numsSize,int k)
{if(k >= numsSize){k = k % numsSize;}my_reverse(nums,0,numsSize-k-1);my_reverse(nums,numsSize-k,numsSize-1);my_reverse(nums,0,numsSize-1);
}

二、malloc實現數組串聯

1929. 數組串聯 - 力扣(LeetCode)

思路

你選用何種方法解題?malloc開辟空間,for循環遍歷數組

解題過程

這些方法具體怎么運用?malloc開辟大小為numsSize*sizeof(int)*2的空間,再強制類型轉換,for循環遍歷數組,用題目所給的串聯數組關系,就可以了

復雜度

  • 時間復雜度:O(n)
  • 空間復雜度:O(1)

代碼演示——

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* getConcatenation(int* nums, int numsSize, int* returnSize) 
{int *ans = (int *)malloc(numsSize*sizeof(int)*2);for(int i = 0;i < numsSize;i++){ans[i] = nums[i];ans[i + numsSize] = nums[i];}*returnSize = numsSize * 2;return ans;
}?

三、異或方法求解消失的數字

面試題 17.04. 消失的數字 - 力扣(LeetCode)

思路

你選用何種方法解題?異或

解題過程

這些方法具體怎么運用?for循環,然后異或,因為異或是相同為0,相異為1,我們就可以這么想——數組中的數依次跟0-N的所有數異或,最后剩下的那個數字就是缺的那個數字

復雜度

  • 時間復雜度:O(n)
  • 空間復雜度:O(1)
?int missingNumber(int* nums, int numsSize) 
{int x = 0;for(int i = 0;i < numsSize;++i){x ^= nums[i];}for(int j = 0;j < numsSize + 1;++j){x ^= j;}?

結尾

結語:本篇文章到這里就結束了,大家一定要自己動手敲一敲,不敲的話容易忘記。

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

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

相關文章

Java Stream詳解

Java Stream詳解 Stream 是 Java 8 引入的流式數據處理工具&#xff0c;可以像流水線一樣對集合數據進行高效操作&#xff08;過濾、轉換、統計等&#xff09;。核心特點&#xff1a; 鏈式操作&#xff1a;支持多個操作串聯不修改原始數據&#xff1a;生成新結果支持并行處理…

Java回歸循環理解

一、Java循環的四種 1. 傳統for循環 - 精確控制的首選 // 遍歷數組 int[] numbers {1, 2, 3, 4, 5}; for (int i 0; i < numbers.length; i) {System.out.println(numbers[i]); }// 嵌套示例&#xff1a;矩陣遍歷 int[][] matrix {{1, 2}, {3, 4}}; for (int row 0; r…

飛騰D2000金融工控主板,點亮經濟高質量發展

近年來&#xff0c;國家不斷推出金融行業的政策和法規&#xff0c;推動金融業高質量發展。在國家大力推進金融行業改革和創新的大環境下&#xff0c;金融工控主板市場也迎來了新的發展機遇。隨著國產CPU技術的不斷突破&#xff0c;以及我國對金融安全重視程度的提高&#xff0c…

SimpleITK——創建nrrd體素模型

在介紹如何生成nrrd前&#xff0c;了解一下為什么醫學影像上一般使用nrrd的體素模型&#xff1f; 為什么醫學影像上一般使用nrrd的體素模型&#xff1f; 在醫學影像領域&#xff0c;?NRRD&#xff08;Nearly Raw Raster Data&#xff09;格式?被廣泛用于存儲體素模型&#x…

Docker容器部署KES

一、安裝部署 1&#xff0c;導入鏡像 #導入鏡像&#xff08;root用戶&#xff09; [rootnode docker ]# mv kdb_x86_64_V008R006C009B0014.tar kingbase.tar [rootnode docker]# docker load -i kingbase.tar#查看鏡像&#xff08;root用戶&#xff09; [rootnode docker]# d…

C++基礎練習 sort函數,用于排序函數

題目&#xff1a; https://acm.hdu.edu.cn/showproblem.php?pid2039 解答&#xff1a; #include <iostream> #include <cmath> #include <algorithm> using namespace std;double a[3]; int main(){int n;cin>>n;while(n--){cin>>a[0]>>…

棱鏡觀察|EMB“重構”卡鉗,車企降本壓力與Brembo困局

傳統制動卡鉗市場&#xff0c;正在迎來變革時刻。 一直以來&#xff0c;采埃孚、大陸集團、日立安斯泰莫等外資供應商占據中國乘用車卡鉗前裝市場&#xff08;包括前制動卡鉗和后集成EPB卡鉗&#xff09;的半壁江山。同時&#xff0c;伯特利、亞太股份、萬向、弗迪等中國供應商…

《顛覆傳統:CSS遮罩的圖像創意設計指南》

想象有一塊神奇的模板&#xff0c;上面有各種形狀的鏤空區域&#xff0c;當我們將這塊模板覆蓋在圖像上時&#xff0c;只有透過鏤空區域才能看到圖像的部分&#xff0c;而模板遮擋的地方則被隱藏起來&#xff0c;這便是CSS遮罩的核心概念。遮罩&#xff0c;簡單來說&#xff0c…

5.基于神經網絡的時間序列預測

近年來&#xff0c;已經開發了一些深度學習方法并將其應用于單變量時間預測場景&#xff0c;其中時間序列由在等時間增量上按順序記錄的單個觀測數據組成。 5.1 將深度學習用于時間序列預測的原因 機器學習的目標是提取特征來訓練模型。模型將輸入數據&#xff08;例如圖片&am…

【軟考高級系統架構論文】論軟件設計方法及其應用

論文真題 軟件設計 (Software Design,SD) 根據軟件需求規格說明書設計軟件系統的整體結構、劃分功能模塊、確定每個模塊的實現算法以及程序流程等,形成軟件的具體設計方案。軟件設計把許多事物和問題按不同的層次和角度進行抽象,將問題或事物進行模塊化分解,以便更容易解決…

什么是水平擴展

什么是水平擴展 在現代系統架構設計中&#xff0c;可擴展性&#xff08;Scalability&#xff09;是衡量系統面對業務增長時應對能力的重要指標。而“水平擴展”&#xff08;Horizontal Scaling&#xff09;&#xff0c;又稱為“橫向擴展”或“擴容節點”&#xff0c;正是應對高…

掌握openpyxl:Excel自動化處理全指南

openpyxl基礎用法 openpyxl 是一個用于處理 Excel 文件&#xff08;.xlsx/.xlsm&#xff09;的 Python 庫&#xff0c;支持讀取、修改和創建 Excel 文檔。以下是其常見用法的詳細介紹&#xff1a; 一、基礎操作&#xff1a;打開與保存文件 from openpyxl import load_workbo…

FastGPT:開啟大模型應用新時代(4/6)

摘要&#xff1a;FastGPT是一種基于大語言模型&#xff08;LLM&#xff09;的知識庫問答系統&#xff0c;致力于提供高效、精準的自然語言處理服務。它允許用戶構建本地知識庫以增強AI的理解能力&#xff0c;通過將用戶的問題與知識庫信息匹配推理&#xff0c;生成有針對性的回…

在MyBatis中$和#有什么區別

在 MyBatis 中&#xff0c;${} 和 #{} 是兩種處理 SQL 參數的占位符&#xff0c;它們在實現機制、安全性、使用場景上存在顯著差異。以下是詳細對比&#xff1a; 核心區別對比 特性#{}${}底層機制預編譯占位符&#xff08;PreparedStatement&#xff09;字符串直接替換安全性…

湖北理元理律師事務所債務優化方案:平衡還款與生活的法律實踐

在個人債務問題日益突出的當下&#xff0c;如何科學規劃還款路徑成為社會性難題。湖北理元理律師事務所基于多年實務經驗&#xff0c;提出“可持續債務優化”模型&#xff0c;其核心在于通過法律工具實現三重平衡&#xff1a; 債權債務的法律平衡&#xff1a;嚴格依據《民法典…

使用 Isaac Sim 模擬機器人

前言 將 2D 激光雷達數據從 Isaac Sim 流式傳輸至 ROS 2&#xff0c;并通過 RViz 進行可視化。通過激光雷達數據監控機器人與環境的交互&#xff0c;從而在仿真環境中提升機器人的感知能力。 概覽 歡迎來到 入門指南&#xff1a;在 Isaac Sim 中模擬您的第一個機器人 課程。我…

quartz 表達式最近10次執行時間接口編寫

Nuget安裝 <PackageReference Include"CronExpressionDescriptor" Version"2.41.0" /> <PackageReference Include"CronExpressionDescriptor-zh-CN" Version"2.32.0" /> <PackageReference Include"Quartz"…

解鎖數據寶藏:數據挖掘之數據預處理全解析

目錄 一、引言&#xff1a;數據預處理 —— 數據挖掘的基石二、數據預處理的重要性2.1 現實數據的問題剖析2.2 數據預處理的關鍵作用 三、數據預處理的核心方法3.1 數據清洗3.1.1 缺失值處理3.1.2 離群點處理3.1.3 噪聲處理 3.2 數據集成3.2.1 實體識別3.2.2 冗余處理3.2.3 數據…

React+Taro創建小程序

第一步&#xff1a;首先確認是否安裝Node.js和npm 如果已安裝Node.js和npm,以下可以查詢 node -v npm -v 第二步&#xff1a;安裝Taro CLI npm install -g tarojs/cli 第三步&#xff1a;創建項目 taro init my-react-taro-app 然后可以看到&#xff0c;下圖 第四步&…

佳能Canon TS3100 Series打印機信息

打印功能 打印速度&#xff1a;黑白約 7.7 頁 / 分鐘&#xff0c;彩色約 4 頁 / 分鐘。打印分辨率&#xff1a;最高可達 48001200dpi&#xff0c;墨滴最小間距為 1/4800 英寸&#xff0c;能夠保證高質量的輸出&#xff0c;使文字清晰、色彩鮮艷。打印寬度&#xff1a;203.2 毫米…