LeetCode 第131場雙周賽個人題解

100309.?求出出現兩次數字的 XOR 值

原題鏈接

求出出現兩次數字的 XOR 值 - 力扣 (LeetCode) 競賽

思路分析

簽到題,一次遍歷

AC代碼

class Solution:def duplicateNumbersXOR(self, nums: List[int]) -> int:cnt = Counter(nums)res = 0st = set(nums)for x in st:if cnt[x] == 2:res ^= xreturn res

100303.?查詢數組中元素的出現位置

原題鏈接

  查詢數組中元素的出現位置 - 力扣 (LeetCode) 競賽

思路分析

  記錄下每個次數的位置,然后遍歷一下查詢就行

時間復雜度O(n)

AC代碼

class Solution:def occurrencesOfElement(self, nums: List[int], queries: List[int], x: int) -> List[int]:mp = defaultdict()s = 0for i, v in enumerate(nums):if v == x:s += 1mp[s] = ireturn [mp[v] if v in mp else -1 for v in queries]

100313.?所有球里面不同顏色的數目

原題鏈接

  所有球里面不同顏色的數目 - 力扣 (LeetCode) 競賽

思路分析

  一開始敲了個莫隊的板子,又看了下題看錯題了。。。沒那么復雜

邊遍歷邊執行操作,邊維護每個元素出現次數,然后記錄下集合中的元素就行

時間復雜度O(n)

AC代碼

class Solution:def queryResults(self, limit: int, queries: List[List[int]]) -> List[int]:cnt = Counter()mp = defaultdict(int)ret = []st = set()for x, y in queries:cnt[mp[x]] -= 1if cnt[mp[x]] == 0:st.remove(mp[x])mp[x] = ycnt[y] += 1st.add(y)ret.append(len(st))return ret

100314.?物塊放置查詢

原題鏈接

  物塊放置查詢 - 力扣 (LeetCode) 競賽

思路分析

  思路就是線段樹維護區間和,但是會卡常。

對原數軸重新編號

原數軸上的點i變為2 * i + 1,點與點之間的空隙也依次編號

然后空隙的權值為1,原數軸點的權值為0

在原數軸放障礙相當于將其賦值為負無窮

對于每個查詢[0, x]等價于查詢[1, 2 * x + 1]的最大連續子段和是否大于等于sz

我們只需要用線段樹維護最大連續子段和即可

只涉及單點修改和區間查詢,時間復雜度為O(nlogn)


由于拆點,區間長度為1e5量級,但是竟然被卡常了?

加個快讀和吸氧才過

掉大分!!!

AC代碼

#pragma GCC optimize(2)
const int N = 1e5 + 10;
#define lc p << 1
#define rc p << 1 | 1
struct node{int l, r;long long sum, lma, rma, ma;
}tr[N << 2];int n, m, a[N];void pushup(node& p, node& l, node& r){p.sum = l.sum + r.sum;p.lma = max(l.lma, l.sum + r.lma);p.rma = max(r.rma, r.sum + l.rma);p.ma = max(l.rma + r.lma, max(l.ma, r.ma));
}void build(int p, int l, int r){tr[p] = { l, r, 0, 0, 0, 0 };if(l == r){if (l % 2 == 0) tr[p] = { l, l, 1, 1, 1, 1 };return;}int mid = l + r >> 1;build(lc, l, mid), build(rc, mid + 1, r);pushup(tr[p], tr[lc], tr[rc]);
}node query(int p, int l, int r){if(l <= tr[p].l && tr[p].r <= r)return tr[p];int mid = tr[p].l + tr[p].r >> 1;if(r <= mid) return query(lc, l, r);else if(l > mid) return query(rc, l, r);node left = query(lc, l, r);node right = query(rc, l, r);node ret = { 0 };pushup(ret, left, right);return ret;
}void update(int p, int x, int k){ //點修if(tr[p].l == x && tr[p].r == x){tr[p] = { x, x, k, k, k, k };return;}int mid = tr[p].l + tr[p].r >> 1;if(x <= mid) update(lc, x, k);else update(rc, x, k);pushup(tr[p], tr[lc], tr[rc]);
}class Solution {
public:Solution() {ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);}vector<bool> getResults(vector<vector<int>>& queries) {memset(tr, 0, sizeof tr);build(1, 1, N);vector<bool> ret;for (auto& v : queries) {int op = v[0];if (op == 1) {update(1, v[1] * 2 + 1, -1e8);}else {auto t = query(1, 1, v[1] * 2 + 1);ret.push_back(t.ma >= v[2]);}}return ret;}
};

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

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

相關文章

Python基礎學習筆記(七)——元組

目錄 一、一維元組的介紹、創建與修改二、組合的基本操作1. 遍歷2. 取長度3. 取最值4. 打包5. 批處理5.1 map()函數5.2 lambda 表達式5.3 lambda 表達式 map()函數 一、一維元組的介紹、創建與修改 元組&#xff08;tuple&#xff09;&#xff0c;一種不可變、有序、可重復的數…

SpringBoot如何開啟注解的形式,使用Redis Cache

Spring Cache 是一個框架&#xff0c;實現了基于注解的緩存功能&#xff0c;只需要簡單的添加注解&#xff0c;就能實現緩存功能。 Spring Cache 提供了一層抽象&#xff0c;底層可以切換不同的緩存實現&#xff0c;例如&#xff1a;Redis、EHCache、Caffeine等 步驟&#xf…

【大模型】Spring AI對接ChatGpt使用詳解

目錄 一、前言 二、spring ai介紹 2.1 什么是Spring AI 2.2 Spring AI 特點 2.3 Spring AI 為開發帶來的便利 2.4 Spring AI應用領域 2.4.1 聊天模型 2.4.2 文本到圖像模型 2.4.3 音頻轉文本 2.4.4 嵌入大模型使用 2.4.5 矢量數據庫支持 2.4.6 用于數據工程ETL框架 …

2024-05-22 VS2022使用modules

點擊 <C 語言編程核心突破> 快速C語言入門 VS2022使用modules 前言一、準備二、使用其一, 用VS installer 安裝模塊:第二個選項就是, 與你的代碼一同編譯std模塊, 這個非常簡單, 但是也有坑. 總結 前言 要解決問題: 使用VS2022開啟modules. 想到的思路: 跟著官方文檔整…

Java進階學習筆記19——內部類

1、 內部類&#xff1a; 是類中五大成分之一&#xff08;成員變量、方法、構造函數、內部類、代碼塊&#xff09;&#xff0c;如果一個類定義在另一個 類的內部&#xff0c;這個類就是內部類。 場景&#xff1a;當一個類的內部&#xff0c;包含了一個完整的事物&#xff0c;且…

Android ART 虛擬機簡析

源碼基于&#xff1a;Android U 1. prop 名稱選項名稱heap 變量名稱功能 dalvik.vm.heapstartsize MemoryInitialSize initial_heap_size_ 虛擬機在啟動時&#xff0c;向系統申請的起始內存 dalvik.vm.heapgrowthlimit HeapGrowthLimit growth_limit_ 應用可使用的 max…

Scikit-Learn樸素貝葉斯

Scikit-Learn樸素貝葉斯 1、樸素貝葉斯1.1、貝葉斯分類1.2、貝葉斯定理1.3、貝葉斯定理的推導1.4、樸素貝葉斯及原理1.5、樸素貝葉斯的優缺點2、Scikit-Learn樸素貝葉斯2.1、Sklearn中的貝葉斯分類器2.2、Scikit-Learn樸素貝葉斯API2.3、Scikit-Learn樸素貝葉斯實踐(新聞分類與…

Python——文件操作相關

1. 讀文件方式 第一種 有規律的名稱 第二種 無規律的名稱 2. 文件名稱 用 “{:05d}” 來規范輸出數字所占位數&#xff0c;例如&#xff1a; for i in range(100):gt_file Reference/ image "{:05d}".format(i) .jpgprint(gt_file)輸出&#xff1a; ... Re…

爬山算法的詳細介紹

目錄 &#x1f349;概述 &#x1f349; 步驟 &#x1f349; 優缺點 &#x1f348;優點 &#x1f348;缺點 &#x1f348;應對策略 &#x1f349;示例 &#x1f348;旅行商問題 &#x1f34d;步驟 &#x1f34d;分解代碼 &#x1f34e;包含頭文件 &#x1f34e;定義函…

Cortex-M3的SysTick 定時器

目錄 概述 1 SysTick 定時器 1.1 SysTick 定時器功能介紹 1.2 SysTick 定時器功能實現 1.3 SysTick在系統中的作用 2 SysTick應用的實例 2.1 建立異常服務例程 2.2 使能異常 2.3 鬧鐘功能 2.4 重定位向量表 2.5 消滅二次觸發 3 SysTick在FreeRTOS中的應用 3.1 STM…

【代碼】結構體

哈嘍大家好&#xff0c;我是學霸小羊&#xff0c;今天講講結構體。 先看例題&#xff1a; 例1.老師給了小楊一份同學們的考試成績&#xff0c;包括語數英三科&#xff0c;老師讓小明按照總分排序&#xff0c;請你幫幫他吧&#xff01; 輸入數據&#xff1a; 第1行 學生總人…

在docker中運行SLAM十四講程序

《十四講》的示例程序依賴比較多&#xff0c;而且系統有點舊。可以在容器中運行。 拉取鏡像 docker pull ddhogan/slambook:v0.1這個docker對應的github&#xff1a;HomeLH/slambook2-docker 拉下來之后&#xff0c;假如是Windows系統&#xff0c;需要使用XLaunch用于提供X11…

面試大雜燴之kafka

面試這個領域最近環境不行&#xff0c;所以卷起來流量挺大 關于K8s 其實看我之前的博客&#xff0c;k8s剛有點苗頭的時候我就研究過&#xff0c;然后工作的時候間接接觸 也自己玩過 但是用的不多就忘記了&#xff0c;正苦于不知道寫什么&#xff0c;水一篇 用來面試應該是夠了…

C++ | Leetcode C++題解之第111題二叉樹的最小深度

題目&#xff1a; 題解&#xff1a; class Solution { public:int minDepth(TreeNode *root) {if (root nullptr) {return 0;}queue<pair<TreeNode *, int> > que;que.emplace(root, 1);while (!que.empty()) {TreeNode *node que.front().first;int depth que…

VC編譯sample_onnx_mnist提示無法打開輸入文件cudnn.lib

出現錯誤 LNK1181 無法打開輸入文件“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\lib\x64\cudnn.lib” 解決辦法&#xff1a;下載cudnn&#xff0c;NVIDIA cuDNN | NVIDIA Developer 拷貝相應的文件到CUDA安裝的目錄下。 VC編譯libtorch提示無法打開輸入文件cu…

huggingface 筆記:PretrainModel

1 from_pretrained 從預訓練模型配置中實例化一個 PyTorch 預訓練模型默認情況下&#xff0c;模型使用 model.eval() 設置為評估模式&#xff08;Dropout 模塊被禁用&#xff09; 要訓練模型&#xff0c;應該首先使用 model.train() 將其設置回訓練模式 1.1 主要參數 pretra…

java 子類繼承父類

為什么需要繼承 我現在要有兩個類一個 一個是小學生&#xff0c;一個是大學生 代碼 小學生 package b; public class encapsulatio{public String name;public int age;public double score;public void setscore (double score) {this.scorescore;}public void testing() {S…

(三)MySQL 索引

歡迎訪問 什么是索引&#xff1f; 提高查詢效率的一種數據結構&#xff0c;索引是數據的目錄 索引的分類 按「數據結構」分類&#xff1a;Btree索引、Hash索引、Full-text索引。按「物理存儲」分類&#xff1a;聚簇索引、二級索引。按「字段特性」分類&#xff1a;主鍵索引…

Spring6 對 集成MyBatis 開發運用(附有詳細的操作步驟)

詳細實現操作步驟 具體實現內容&#xff1a;我們運用 Spring6 和 MyBatis 實現一個轉賬操作(該轉賬操作&#xff0c;進行一個事務上的控制&#xff0c;運用 MyBatis 執行 SQL 語句)。 第一步&#xff1a;準備數據庫表 使用t_act表&#xff08;賬戶表&#xff09; 連接數據庫的…

三個有意思的鏈表面試題的完成

上一篇博客我們已經完成了鏈表的所有內容&#xff0c;那么這一篇博客我們來看一下三個特別有意思的鏈表題目。 **第一個題目如下&#xff1a;**相信不少朋友看到這題目就已經暈了&#xff0c;那就簡單說明下這個題目&#xff0c;題目就是創建一個鏈表&#xff0c;其中每個節點…