
算法
深夜的雨声
这个作者很懒,什么都没留下…
展开
-
求两个矩阵相交部分面积
给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。class Solution {public: int computeArea(int ax1, int ay1, int ax2, int ay2, int bx原创 2022-04-12 10:15:35 · 1034 阅读 · 0 评论 -
LRU算法及其实现
数据结构:双向链表list:保存key和value哈希表unordered_map:用于快速找到key对应节点位置整行:记录容器大小,容器满时淘汰数据接口用法:list:begin()取链表第一个元素;back()取链表最后一个元素;size()计算链表一共多少元素;erase(iterator)删除链表中某个元素;push_front(pair<>)将某个元素放到链表头部;pop_back()删除链表最后一个元素。unordered_map:原创 2022-03-18 22:02:47 · 604 阅读 · 0 评论 -
最长上升子序列(一)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,原创 2022-03-10 16:15:37 · 150 阅读 · 0 评论 -
快速排序C++实现
#include <iostream>using namespace std;void quickSort(int *arr, int left, int right);int portSort1(int *arr, int left, int right);int portSort2(int *arr, int left, int right);int main(){ int array[] = {4,1,7,6,9,2,8,0,3,5}; int len = ...原创 2022-02-21 00:06:13 · 711 阅读 · 0 评论 -
寻找1~n之间的质数
寻找1~n之间的质数#include<iostream>#include<vector>using namespace std;int main(){ int n; cin >> n; vector<int> vec{2}; for(int i = 3; i <= n; i++){ ...原创 2019-09-02 23:51:34 · 518 阅读 · 0 评论 -
面试题:寻找峰值
题目描述:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其...原创 2019-09-22 10:24:07 · 399 阅读 · 0 评论 -
面试题——全排列问题
问题描述:输入一个整型数字N,求1~n组成数组的全排列输入用例:3输出用例:1 2 31 2 32 1 32 3 13 1 23 2 1解题思想:将当前元素与后面元素交换,交换过程中并进行递归,以下为实现代码:#include<iostream>#include<vector>using namespace std;void ...原创 2019-09-23 11:00:18 · 330 阅读 · 0 评论