LeetCode 刷题笔记

news/2024/12/20 20:28:29/

LeetCode 刷题笔记

1. 20241218

(1)2447

std::gcdC++17引入的一个函数,用于计算两个整数的最大公因数。位于<numeric>头文件中。

#include <iostream>
#include <numeric> // std::gcdint main() {int a = 36;int b = 60;// 计算两个整数的最大公因数int gcd = std::gcd(a, b);// 输出最大公因数std::cout << "The GCD of " << a << " and " << b << " is: " << gcd << std::endl;return 0;
}

计算一组数的最大公因数

function gcd(a, b):while b ≠ 0:temp = bb = a % ba = tempreturn afunction gcd_of_list(numbers):if numbers is empty:return 0result = numbers[0]for i from 1 to length(numbers) - 1:result = gcd(result, numbers[i])return result// 示例使用
numbers = [24, 36, 48, 60]
result = gcd_of_list(numbers)
print("The GCD of the given numbers is: " + result)

(2)3319

C++中,可以使用标准库中的std::priority_queue来实现最大堆和最小堆。默认情况下,std::priority_queue是一个最大堆,但能够通过指定比较函数来实现最小堆。

最大堆
#include <iostream>
#include <queue>
#include <vector>int main() {// 创建一个优先队列(最大堆)std::priority_queue<int> maxHeap;// 向堆中添加元素maxHeap.push(10);maxHeap.push(20);maxHeap.push(30);maxHeap.push(5);maxHeap.push(15);// 输出堆顶元素std::cout << "Top element: " << maxHeap.top() << std::endl;// 输出并移除堆中的所有元素std::cout << "Elements in the max heap: ";while (!maxHeap.empty()) {std::cout << maxHeap.top() << " "; // 获取堆顶元素maxHeap.pop(); // 移除堆顶元素}std::cout << std::endl;return 0;
}
最小堆
#include <iostream>
#include <queue>
#include <vector>
#include <functional>int main() {// 创建一个优先队列(最小堆)std::priority_queue<int, std::vector<int>, std::greater<int>> minHeap;// 向堆中添加元素minHeap.push(10);minHeap.push(20);minHeap.push(30);minHeap.push(5);minHeap.push(15);// 输出堆顶元素std::cout << "Top element: " << minHeap.top() << std::endl;// 输出并移除堆中的所有元素std::cout << "Elements in the min heap: ";while (!minHeap.empty()) {std::cout << minHeap.top() << " "; // 获取堆顶元素minHeap.pop(); // 移除堆顶元素}std::cout << std::endl;return 0;
}
常用方法

(1)push(const T& value):向堆中添加元素
(2)pop():移除堆顶元素
(3)top():获取堆顶元素
(4)empty():检查堆是否为空
(5)size():获取堆中元素的数量

(3)2316

std::queueC++ 标准库中的一个容器适配器,用于实现先进先出(FIFO)的数据结构。

常用方法

(1)构造函数:
queue():创建一个空的队列。
queue(const Container &cont):使用给定的容器创建队列。
queue(const queue &other):拷贝构造函数。
(2)push(const T& value):向队列的末尾添加元素。
(3)pop():移除队列的第一个元素。
(4)front():获取队列的第一个元素。
(5)back():获取队列的最后一个元素。
(6)empty():检查队列是否为空。
(7)size():获取队列中元素的数量。

2. 20241219

(1)1300

二分查找
C++ 标准库中,相关的函数主要有 std::lower_boundstd::upper_boundstd::equal_rangestd::binary_search。这些函数都位于 <algorithm> 头文件中,并且用于在已排序的范围内进行查找操作。

// 返回一个迭代器,指向第一个大于value的元素
// 如果所有元素都不大于value, 则返回last
// 使用 std::upper_bound 的前提是容器中的元素必须是已排序的。如果容器未排序,结果将是未定义的。
template< class ForwardIt, class T >
ForwardIt upper_bound( ForwardIt first, ForwardIt last, const T& value );
// 返回一个迭代器,指向第一个不小于 value 的元素
// 如果所有元素都小于 value,则返回 last
// 使用 std::lower_bound 的前提是容器中的元素必须是已排序的。如果容器未排序,结果将是未定义的
template< class ForwardIt, class T >
ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value );
// 返回一个 std::pair 对象,包含两个迭代器:
// first:指向第一个不小于 value 的元素。
// second:指向第一个大于 value 的元素。
// 使用 std::equal_range 的前提是容器中的元素必须是已排序的。如果容器未排序,结果将是未定义的。
template< class ForwardIt, class T >
std::pair<ForwardIt, ForwardIt> equal_range( ForwardIt first, ForwardIt last, const T& value );
// 如果在范围内找到等于 value 的元素,则返回 true;否则返回 false
template< class ForwardIt, class T >
bool binary_search( ForwardIt first, ForwardIt last, const T& value );

http://www.ppmy.cn/news/1556725.html

相关文章

BlueLM:以2.6万亿token铸就7B参数超大规模语言模型

一、介绍 BlueLM 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型&#xff0c;本次发布包含 7B 基础 (base) 模型和 7B 对话 (chat) 模型&#xff0c;同时我们开源了支持 32K 的长文本基础 (base) 模型和对话 (chat) 模型。 更大量的优质数据 &#xff1a;高质量语料…

使用Python进行excel的数据简单分析

Python代码&#xff0c;需要将处理后分析得到的数据存储到与当前目录下的一个Excel文件中去。 完整的Python代码&#xff08;初&#xff09;&#xff1a; import pandas as pd import os# 读取Excel文件 file_path 供应链分析.xlsx excel_data pd.ExcelFile(file_path)# 读取…

【Linux】常用命令大全

【Linux】命令大全 【一】文件【1】文件基本属性&#xff08;1&#xff09;ll或者ls –l查看文件的属性以及文件所属的用户和组 【2】文件属主和属组【3】更改文件属性&#xff08;1&#xff09;chgrp&#xff1a;更改文件属组&#xff08;2&#xff09;chown&#xff1a;更改文…

12.7深度学习_经典神经网络_VGG

一、VGG神经网络 ​ VGG的亮点在于它通过堆叠多个卷积层&#xff0c;以小的卷积核和池化层的方式来增加网络深度&#xff0c;从而实现高精度的图像识别。这种方法可以有效地捕获图像中的高级特征&#xff0c;并通过不断拟合训练数据来提高识别准确率。 1. 小卷积作用 ​ DC …

单步调试Android Framework——App冷启动

纸上得来终觉浅&#xff0c;绝知此事要躬行。 —— [宋]陆游 基于aosp_cf_x86_64_phone-trunk_staging-eng &#xff0c; 下面是具体断点位置。 第一部分&#xff0c;桌面launcher进程 com.android.launcher3.touch.ItemClickHandler onClickonClickAppShortcutstartAppShor…

数据结构----链表头插中插尾插

一、链表的基本概念 链表是一种线性数据结构&#xff0c;它由一系列节点组成。每个节点包含两个主要部分&#xff1a; 数据域&#xff1a;用于存储数据元素&#xff0c;可以是任何类型的数据&#xff0c;如整数、字符、结构体等。指针域&#xff1a;用于存储下一个节点&#…

ilqr算法原理以及常见自动驾驶轨迹优化问题建模

1. ilqr ILQR算法是基于nominal trajectory ( x ~ , u ~ ) (\tilde{x}, \tilde{u}) (x~,u~)来优化求解的。ILQR是求解状态变量和控制变量的增量序列 ( δ x ∗ , δ u ∗ ) (\delta x^*, \delta u^*) (δx∗,δu∗)求解轨迹的局部最优值。 1.1 无约束轨迹优化问题形式 x ∗ ,…

如何制作搞笑配音视频?操作方法

在数字娱乐盛行的今天&#xff0c;搞笑配音视频凭借其独特的幽默感和创意&#xff0c;在网络上赢得了大量观众的喜爱。如果你也想尝试制作一部让人捧腹的搞笑配音视频&#xff0c;那么请跟随以下步骤&#xff0c;从撰写搞笑文案到视频配音剪辑&#xff0c;一步步打造你的作品。…