代碼隨想錄算法訓練營第五天

● 自己看到題目的第一想法

242. 有效的字母異位詞

  1. 方法:
    方法一: 暴力法

    1. 分別對s, t排序
    2. 遍歷s與t  判斷s[i]!=t[i]  返回 false  否則 返回true
    
  2. 思路:

  3. 注意:

  4. 代碼:

    bool cmp(char a, char b){return a<b;}class Solution {
public:bool isAnagram(string s, string t) {int slen = s.size();int tlen = t.size();if(slen != tlen){return false;}sort(t.begin(), t.end(),cmp);sort(s.begin(), s.end(), cmp);for(int i= 0; i<slen; i++){cout<< s[i] <<endl   ;}for(int j= 0; j<tlen; j++){cout<< t[j] <<endl   ;}        for(int i= 0,j=0; i<slen,j<tlen; i++,j++){          if(s[i] != t[j]){cout<< s[0] <<" "<<t[0]<<endl   ;cout<< s[1] <<" "<<t[1]<<endl   ;return false;                                }}return true;}
};
  1. 運行結果:
    在這里插入圖片描述

  2. 方法二:哈希表

  3. 思路:

    定義一個nums數組大小為26,初始值為0;
    利用nums記分別錄,s中字符出現的頻次, t中字符出現的頻次
    若二者頻次相同 則 return true  否則  return false;
    
  4. 注意:

  5. 代碼:

class Solution {
public:bool isAnagram(string s, string t) {int record[26]={0};int slen = s.size();int tlen = t.size();for(int i = 0; i<slen; i++){record[s[i] -'a']++;}for(int i =0; i<tlen; i++){record[t[i]-'a']--;}for(int i=0; i<26; i++){if(record[i] != 0){return false;}}return true;}
};
class Solution {
public:bool isAnagram(string s, string t) {map<char, int>m;for(int i =0; i<s.size(); i++){m[s[i]]++;}for(int i=0; i<t.size(); i++){m[t[i]]--;}for (auto it = m.begin(); it != m.end(); ++it) {if (it->second != 0) {return false;}}//等價于//   for(auto it:map){//         if(it.second !=0){//             return false;//         }//     }        return true;}
};

349. 兩個數組的交集

  1. 方法:哈希表

  2. 思路:

     該題的結果是去重的,  所以  確定使用  set  或  unordered_set定義  集合 res  與  s   set<int>s, res;將nums1  放在 set中,  set<int>s(nums1.begin(), nums2.end());在s中查找 nums2  是否出現在  s中,  出現則將nums2插入res中  s.find(nums2) !=s.end();返回  vector<int>(res.begin(), res.end())
    
  3. 注意:

  4. 代碼:

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {set<int>s(nums1.begin(), nums1.end());  set<int>res;for(auto nums: nums2){if(s.find(nums) != s.end()){res.insert(nums);}}return vector<int>(res.begin(),res.end());}
};
  1. 運行結果:
    在這里插入圖片描述

第202題. 快樂數

  1. 方法二:快慢指針

  2. 思路:

    可能會出現的情況有兩種,
    1. 一個數最終會變成1
    2. 一個數最終會陷入循環
    3. 一個數最終會變得無限大(排除這種,不可能出現這種情況)定義兩個指針  fast (每次走兩步)  slow(每次走一步)
    若fast  與slow  相遇   則  陷入循環  判斷    fast==1  若是 則返回 true   否則返回false;若不相遇 則 fast (每次走兩步)  slow(每次走一步)
    
  3. 注意:

  4. 代碼:

class Solution {
public:int getsum(int n){int sum =0;while(n){sum += (n%10)*(n%10);n = n/10;}return sum;}bool isHappy(int n) {int slow = n;int fast = getsum(n);while(slow != fast){slow = getsum(slow);fast = getsum(getsum(fast));}if(slow==1){return true;}return false;}
};

在這里插入圖片描述

  1. 方法二:哈希表

  2. 思路:

    可能會出現的情況有兩種,
    1. 一個數最終會變成1
    2. 一個數最終會陷入循環
    3. 一個數最終會變得無限大(排除這種,不可能出現這種情況)定義哈希表unordered_set<int>set
    若 set中出現sum  則返回false, 否則將sum加入到set中;
    將n賦值到下一個計算的結果    n=sum  
    
  3. 注意: n要更新成下個計算的結果 即n=sum

  4. 代碼:

class Solution {
public:bool isHappy(int n) {unordered_set<int>set;while(1){int x= getsum(n);if(set.find(x) !=set.end()){return false;}else{set.insert(x);}n=x;if(x==1){return true;}}}int getsum(int n){int sum=0;while(n){sum += (n%10) * (n%10);n=n/10;}return sum;}
};

在這里插入圖片描述

1. 兩數之和

  1. 方法一:哈希表

  2. 思路:

    定義一個unordered_map<int, int>map, 第一個是數  第二個是下標;
    在map中查找 target-nums[i]  若存在  則返回 it->second  和下標  ,否則 將nums[i]  和 i  插入map中
    
  3. 注意:

  4. 代碼:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int>map;for(int i=0; i<nums.size(); i++){auto it = map.find(target-nums[i]);if(it != map.end()){return {it->second, i};}map.insert(pair<int, int>(nums[i], i));}return {};}
};

在這里插入圖片描述

  1. 方法二:暴力法

  2. 思路:

  3. 注意:

  4. 代碼:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int>res;for(int i=0; i<nums.size(); i++){for(int j=i+1; j<nums.size(); j++){if(nums[i]+nums[j]==target){// res.push_back(i);// res.push_back(j);res.insert(res.end(),{i,j});return res;}}}return { };}
};

在這里插入圖片描述

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

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

相關文章

網站搭建的基本流程是什么?

網站搭建的基本流程是什么? 我們選擇了白嫖雨云的二級域名 瀏覽器輸入https://www.rainyun.com/z22_ 創建賬號然后選擇一個你喜歡的子域名我建議后綴選擇ates.top的 選擇自定義地址&#xff0c;類型選擇cname 現在要選擇記錄值了&#xff0c;有a&#xff0c;aa&#xff0c;txt…

【Logback】Logback 的配置文件

目錄 一、初始化配置文件 1、logback 配置文件的初始化順序 2、logback 內部狀態信息 二、配置文件的結構 1、logger 元素 2、root 元素 3、appender 元素 三、配置文件中的變量引用 1、如何定義一個變量 2、為變量設置默認值 3、變量的嵌套 In symbols one observe…

Swift的基本數據類型

1. Int類型&#xff1a;用于表示整數&#xff0c;包括正整數和負整數。 let age: Int 30 let numberOfStudents 50 2. Double和Float類型&#xff1a;用于表示浮點數&#xff0c;即帶有小數點的數值。Double提供更高的精度&#xff0c;而Float提供較低的精度。 let pi: Do…

如何壓縮word文檔中的圖片大小?一鍵批量壓縮~

在日常工作和學習中&#xff0c;我們經常需要創建和編輯Word文檔&#xff0c;并在其中插入圖片來豐富內容。然而&#xff0c;隨著圖片的增加&#xff0c;Word文檔的大小可能會急劇增加&#xff0c;導致文件變得龐大&#xff0c;不便于傳輸和共享。針對這個問題&#xff0c;本文…

C++/WinRT教程(第四篇)WinRT 的錯誤和異常處理

目錄 前言 避免捕獲和拋出異常 捕獲異常 拋出異常 編輯API時拋出異常 使用 noexcept 時如何調試 調用同步代碼 快速失敗 斷言 前言 本文主要介紹 C/WinRT 中的異常如何使用以及使用原則&#xff0c;如果你剛開始接觸WinRT&#xff0c;建議先閱讀第一篇。 C/WinRT教程…

67-箭頭函數,new.target,模版字符串

1.箭頭函數 ES6新增語法&#xff0c;用來簡化函數的書寫()>{} <script>//箭頭函數的基本使用let a (a,b)>{return ab;}let c a(1,2);console.log(c);//輸出3</script> 2.簡寫形式&#xff1a; 2.1參數&#xff1a;只有一個參數時可以省略小括號a>{}&…

面試經典 150 題 ---- 輪轉數組

面試經典 150 題 ---- 輪轉數組 輪轉數組方法一&#xff1a;使用額外的數組方法二&#xff1a;數組翻轉 輪轉數組 方法一&#xff1a;使用額外的數組 我們可以使用額外的數組來將每個元素放至正確的位置。用 n 表示數組的長度&#xff0c;我們遍歷原數組&#xff0c;將原數組…

Java底層自學大綱_JVM篇

JVM專題_自學大綱所屬類別學習主題建議課時&#xff08;h&#xff09; A 深入理解Java虛擬機001 JVM類加載器設計原理2.5 A 深入理解Java虛擬機002 基于SPI破解雙親委派機制2.5 A 深入理解Java虛擬機003 JVM內部結構分析2.5 A 深入理解Java虛擬機004 字符串常量池原理2.5 …

【算法】長短期記憶網絡(LSTM,Long Short-Term Memory)

這是一種特殊的循環神經網絡&#xff0c;能夠學習數據中的長期依賴關系&#xff0c;這是因為模型的循環模塊具有相互交互的四個層的組合&#xff0c;它可以記憶不定時間長度的數值&#xff0c;區塊中有一個gate能夠決定input是否重要到能被記住及能不能被輸出output。 原理 黃…

37.云原生之springcloud+k8s+GitOps+istio+安全實踐

云原生專欄大綱 文章目錄 準備工作項目結構介紹配置安全測試ConfigMapSecret使用Secret中數據的方式Deployment使用Secret配置Secret加密 kustomize部署清單ConfigMap改造SecretSealedSecretDeployment改造Serviceistio相關資源DestinationRuleGatewayVirtualServiceServiceAc…

132557-72-3,2,3,3-三甲基-3H-吲哚-5-磺酸,具有優異的反應活性和光學性能

132557-72-3&#xff0c;5-Sulfo-2,3,3-trimethyl indolenine sodium salt&#xff0c;2,3,3-三甲基-3H-吲哚-5-磺酸&#xff0c;具有優異的反應活性和光學性能&#xff0c;一種深棕色粉末 您好&#xff0c;歡迎來到新研之家 文章關鍵詞&#xff1a;132557-72-3&#xff0c;5…

ROS2體系框架

文章目錄 1.ROS2的系統架構2.ROS2的編碼風格3.細談初始化和資源釋放4.細談配置文件5.ROS2的一些命令6.ROS2的核心模塊6.1 通信模塊6.2 功能包6.3 分布式6.4 終端命令和rqt6.5 launch6.6 TF坐標變換6.7 可視化RVIZ 1.ROS2的系統架構 開發者的工作內容一般都在應用層&#xff0c;…

MySQL學習Day24—數據庫的設計規范

一、數據庫設計的重要性: 1.糟糕的數據庫設計產生的問題: (1)數據冗余、信息重復、存儲空間浪費 (2)數據更新、插入、刪除的異常 (3)無法正確表示信息 (4)丟失有效信息 (5)程序性能差 2.良好的數據庫設計有以下優點: (1)節省數據的存儲空間 (2)能夠保證數據的完整性 …

力扣138.隨機鏈表的復制

給你一個長度為 n 的鏈表&#xff0c;每個節點包含一個額外增加的隨機指針 random &#xff0c;該指針可以指向鏈表中的任何節點或空節點。 構造這個鏈表的 深拷貝。 深拷貝應該正好由 n 個 全新 節點組成&#xff0c;其中每個新節點的值都設為其對應的原節點的值。新節點的 n…

編寫一個自動合并代碼到不同分支的腳本小工具

新建一個 autoMerge.sh 的文件&#xff0c;文件內容如下 # 提示用戶確認繼續執行 read -p "確認要執行腳本嗎&#xff1f;(輸入 yes 繼續): " userInput# 檢查用戶輸入是否為 "yes" if [ "$userInput" ! "yes" ]; thenecho "用戶…

《TCP/IP詳解 卷一》第9章 廣播和組播

目錄 9.1 引言 9.2 廣播 9.2.1 使用廣播地址 9.2.2 發送廣播數據報 9.3 組播 9.3.1 將組播IP地址轉換為組播MAC地址 9.3.2 例子 9.3.3 發送組播數據報 9.3.4 接收組播數據報 9.3.5 主機地址過濾 9.4 IGMP協議和MLD協議 9.4.1 組成員的IGMP和MLD處理 9.4.2 組播路由…

可用于智能客服的完全開源免費商用的知識庫項目

介紹 FastWiki項目是一個高性能、基于最新技術棧的知識庫系統&#xff0c;專為大規模信息檢索和智能搜索設計。利用微軟Semantic Kernel進行深度學習和自然語言處理&#xff0c;結合.NET 8和MasaBlazor前端框架&#xff0c;后臺采用.NET 8MasaFrameworkSemanticKernel&#xff…

嵌入式Linux學習DAY26

管道的作用&#xff1a;進程間的通信 無名管道&#xff1a; 只能在父子進程中進行通信 pipe int pipe(int pipefd[2]); 功能: 創建一個無名管道 參數: pipefd[0]:讀管道文件描述符 pipefd[1]:寫管道文件描述符 …

【InternLM 實戰營筆記】基于 InternLM 和 LangChain 搭建MindSpore知識庫

InternLM 模型部署 準備環境 拷貝環境 /root/share/install_conda_env_internlm_base.sh InternLM激活環境 conda activate InternLM安裝依賴 # 升級pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install str…

【大廠AI課學習筆記NO.53】2.3深度學習開發任務實例(6)數據采集

這個系列寫了53期了&#xff0c;很多朋友收藏&#xff0c;看來還是覺得有用。 后續我會把相關的內容&#xff0c;再次整理&#xff0c;做成一個人工智能專輯。 今天學習到了數據采集的環節。 這里有個問題&#xff0c;數據準備包括什么&#xff0c;還記得嗎&#xff1f; 數…