【找工作】C++和算法復習(自用)

文章目錄

    • C++
      • 頭文件
      • 自定義排序函數
      • stl
    • 算法
      • 數據結構
        • 樹狀數組
      • 數學
      • 字符串
        • manacher
        • kmp

自用隨便記錄

C++

排序
stl

頭文件

全能頭文件:

#include<bits/stdc++.h>

自定義排序函數

bool compare(const int &odd1,const int &odd2)
{return odd1>odd2;
}

stl

枚舉map

  map<int, string> mapStudent;  mapStudent.insert(pair<int, string>(1, "student_one"));  mapStudent.insert(pair<int, string>(2, "student_two"));  mapStudent.insert(pair<int, string>(3, "student_three"));  map<int, string>::reverse_iterator  iter;  for(iter = mapStudent.rbegin(); iter != mapStudent.rend(); iter++)  {  cout<<iter->first<<"   "<<iter->second<<endl;  }  

優先隊列

算法

數據結構


樹狀數組
int tree[maxn<<2];
int lowbit(int x){return x & -x;
}
int get_sum(int idx){int sum = 0;while(idx){sum += tree[idx];idx -= lowbit(x);}return sum;
}
void update(int idx, int value){while(idx < LIMIT){tree[idx] += value;idx += lowbit(idx);}
}

數學

快速冪
gcd和最小公倍數(ab的最小公倍數=ab/gcd(ab))

int gcd(int x, int y){if(x<y) return gcd(y, x);return y == 0?x:gcd(y, x%y);
}

ex_gcd
質數

字符串

manacher

找最長回文子串

void initialize(int n, char ch[maxn]){int nn = n<<1|1;for(int i = nn-1, j=n-1; i>=2; i-=2){ch[i] = '#';ch[i-1] = ch[j];}ch[0] = '#';
}void manacher(int n, char ch[maxn]){memset(d, 0, sizeof(d));//d[i]是不包括i在內的半徑int mid = -1;int maxr = -1;for(int i = 0; i < n; i++){if(maxr>d[i]){int other = mid * 2 - i;d[i] = min(d[other], maxr-i);}while(i-d[i]>=0 && i+d[i]<n && ch[i-d[i]]==ch[i+d[i]])i++;d[i]--;if(i+d[i]>maxr){mid = i;maxr = i+d[i];}}
}
kmp

模式匹配
前綴函數https://oi-wiki.org/string/kmp/
特點1:“一個重要的觀察是 相鄰的前綴函數值至多增加 1。”
特點2:當不符合最優的增加1的情況的時候,如何快速找到下一個可以匹配的對象?
注意 前綴數組pi[0]=0!!!
其他情況下 表示的是重復前后綴的長度,比如對于abab字符串,pi[3]=2(有重復串ab)

KMP:給定一個文本 t 和一個字符串 s,我們嘗試找到并展示 s 在 t 中的所有出現(occurrence)
力扣測試題:https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/description/

const int maxn = 1e4 + 10;
class Solution {
public:int pi[maxn];//前綴數組void get_pi(string s){int n = s.length();memset(pi, 0, sizeof(pi));for(int i = 1; i < n; i++){int j = pi[i-1];while(j != 0 && s[j] != s[i]){j = pi[j-1];}if(s[i] == s[j]) pi[i] = j+1;else pi[i] = 0;}}int strStr(string haystack, string needle) {int n_needle = needle.length();get_pi(needle);int n = haystack.length();int j = 0;for(int i = 0; i < n; i++){while(j != 0 && haystack[i] != needle[j]){j = pi[j-1];}if(haystack[i] == needle[j]){j++;}//printf("i:%d, ch:%c, j:%d, chj:%c\n", i, haystack[i], j, needle[j]);if(j == n_needle) return i - n_needle + 1;}return -1;}
};

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

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

相關文章

請談談 React 中的狀態管理,如何使用 Context API 和 Redux 進行狀態管理?

一、Context API 深度應用 1. 核心實現原理 通過createContext創建上下文對象&#xff0c;使用Provider組件包裹需要共享狀態的組件樹&#xff0c;子組件通過useContext Hook或Consumer組件消費數據。 代碼示例&#xff08;主題切換場景&#xff09;&#xff1a; // 創建上…

kotlin的Int類型調用toString()會導致空指針嗎

DeepSeek R1 思考 38 秒 思考過程 用戶的問題是關于Kotlin中Int類型調用toString()是否會導致空指針異常。首先&#xff0c;我需要回憶Kotlin的基本類型系統。Kotlin中的Int屬于基本數據類型&#xff0c;但它在語言層面被表示為非空類型。也就是說&#xff0c;Int變量本身不能…

網絡運維學習筆記 017 HCIA-Datacom綜合實驗01

文章目錄 綜合實驗1實驗需求總部特性 分支8分支9 配置一、 基本配置&#xff08;IP二層VLAN鏈路聚合&#xff09;ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 單臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 綜合實…

基于Hadoop的汽車大數據分析系統設計與實現【爬蟲、數據預處理、MapReduce、echarts、Flask】

文章目錄 有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主 項目介紹爬蟲數據概覽HIve表設計Cars Database Tables 1. cars_data2. annual_sales_volume3. brand_sales_volume4. city_sales_volume5. sales_volume_by_year_and_brand6. sales_distri…

springboot實現多文件上傳

springboot實現多文件上傳 代碼 package com.sh.system.controller;import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMap…

Java所有運算符理解

Java 運算符 算術運算符 表格中的實例假設整數變量A的值為10&#xff0c;變量B的值為20&#xff1a; 操作符描述例子加法 - 相加運算符兩側的值A B 等于 30-減法 - 左操作數減去右操作數A – B 等于 -10*乘法 - 相乘操作符兩側的值A * B等于200/除法 - 左操作數除以右操作數…

紛析云:賦能企業財務數字化轉型的開源解決方案

在企業數字化轉型的浪潮中&#xff0c;財務管理的高效與安全成為關鍵。紛析云憑借其開源、安全、靈活的財務軟件解決方案&#xff0c;為企業提供了一條理想的轉型路徑。 一、開源的力量&#xff1a;自主、安全、高效 紛析云的核心優勢在于其100%開源的財務軟件源碼。這意味著…

Golang深度學習

前言 在2009年&#xff0c;Google公司發布了一種新的編程語言&#xff0c;名為Go&#xff08;或稱為Golang&#xff09;&#xff0c;旨在提高編程效率、簡化并發編程&#xff0c;并提供強大的標準庫支持。Go語言的設計者們希望通過Go語言能夠解決軟件開發中的一些長期存在的問…

博客系統筆記總結 2( Linux 相關)

Linux 基本使用和程序部署 基本命令 文件操作 顯示當前目錄下的文件 ls&#xff1a;顯示當前目錄下的文件 ll&#xff1a;以列表的形式展示&#xff0c;包括隱藏文件 進入目錄 && 顯示當前路徑 cd&#xff1a;進入目錄&#xff08;后面跟相對路徑或者絕對路徑&…

開源基準測試模擬器:BlueROV2 水下機器人的控制

拜讀An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot 非常感謝Esben Uth的幫助。 本文介紹了在 Simulink? 中實現的常用且低成本的遙控潛水器 &#xff08;ROV&#xff09; BlueROV2 的仿真模型環境&#xff0c;該環境已針對水下航行器的基準控…

Unity打包APK報錯 using a newer Android Gradle plugin to use compileSdk = 35

Unity打包APK報錯 using a newer Android Gradle plugin to use compileSdk 35 三個報錯信息如下 第一個 WARNING:We recommend using a newer Android Gradle plugin to use compileSdk 35This Android Gradle plugin (7.1.2) was tested up to compileSdk 32This warning…

HTML5特殊字符

HTML中常用的特殊符號一般都以“&”開頭&#xff0c;以“;”結束。

本地大模型編程實戰(23)用智能體(Agent)實現基于SQL數據構建問答系統(2)

本文將用 智能體(Agent) 實現對 SQLite 數據庫的查詢&#xff1a;用戶用自然語言提出問題&#xff0c;智能體也用自然語言根據數據庫的查詢結果回答問題。 本次將分別在英文、中文環境下&#xff0c;使用 qwen2.5 、 MFDoom/deepseek-r1-tool-calling:7b 以及 llama3.1 做實驗。…

nodejs npm install、npm run dev運行的坎坷之路

1、前面的種種都不說了&#xff0c;好不容易運行起來oap-portal項目&#xff0c;運行idm-ui項目死活運行不起來&#xff0c;各種報錯&#xff0c;各種安裝&#xff0c;各種卸載nodejs&#xff0c;卸載nvm&#xff0c;重裝&#xff0c;都不好使。 2、甚至后來運行npm install會…

gotool在線工具集

1. 包含各種 sql 處理 2. 包含 json 處理 3. 包含 圖片處理 4. 跨平臺傳輸 gotool

猿大師播放器:智慧交通Web網頁低延遲播放監控RTSP H.265視頻解決方案

在智慧城市建設加速推進的今天&#xff0c;智慧交通作為城市"神經系統"正面臨前所未有的發展機遇。據統計&#xff0c;2023年全國交通視頻監控設備保有量已突破4500萬臺&#xff0c;日均產生的視頻數據量超50PB。但在這些龐大數字背后&#xff0c;行業卻普遍面臨著&q…

Web自動化之Selenium控制已經打開的瀏覽器(Chrome,Edge)

在使用selenium進行web自動化或爬蟲的時候,經常會面臨登錄的情況,對于這種情況,我們可以利用Selenium控制已經打開的瀏覽器&#xff0c;從而避免每次都需要重新打開瀏覽器并進行登錄的繁瑣步驟。 目錄 說明 啟動瀏覽器 注意 --user-data-dir說明 代碼設定 代碼 改進代…

【Alertmanager】Alertmanager告警路由,告警靜默,告警抑制,高可用的實現

?? 歡迎大家來到景天科技苑?? ???? 養成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構師,華為云開發者社區專家博主,阿里云開發者社區專家博主,CSDN全棧領域優質創作者,掘金優秀博主,51CTO博客專家等。 ??《博客》:Python全…

Vue3 + Vite + TS,使用 配置項目別名屬性:resolve

使用 resolve 配置全局項目路徑別名 1.優化了開發中單頁面引用其他模塊的路徑復雜性 2.妥妥解決了&#xff0c;組件復用當中提高開發效率 // 不使用配置 import { useStore } from ../../../stores // 使用配置 可根據開發者需求任意定義&#xff0c;較多 import { useStore…

Linux主機用戶登陸安全配置

Linux主機用戶登陸安全配置 在Linux主機上進行用戶登錄安全配置是一個重要的安全措施&#xff0c;可以防止未經授權的訪問。以下是如何創建用戶hbu、賦予其sudo權限&#xff0c;以及禁止root用戶SSH登錄&#xff0c;以及通過ssh key管理主機用戶登陸。 創建用戶hbu 使用具有…