408算法题leetcode--第24天

news/2024/12/22 0:12:25/

#378. 有序矩阵中第 K 小的元素

  • 378. 有序矩阵中第 K 小的元素
  • 思路:值二分,如注释
  • 时间:O(log(r-l) * n);空间:O(1)
class Solution {
public:int check(vector<vector<int>>& matrix, int target){// 找<=target的个数int count = 0;int n = matrix.size();// 每一列最后一个<=target的数int i = n - 1, j = 0;while(i >= 0 && j < n){if(matrix[i][j] <= target){// 第j列有i+1个元素<=targetcount += i + 1;++j;} else {--i;}}return count;}int kthSmallest(vector<vector<int>>& matrix, int k) {// 思路1:二维 > 一维,排序,输出第k个数// 优化:值二分,计算l与mid之间的元素个数,如果<k,说明target在右段,否则在左段// 每个数的范围都在[matrix[0][0], matrix[n-1][n-1]]之间,找到第一个满足左段有k-1个数的值int n = matrix.size();int l = matrix[0][0], r = matrix[n - 1][n - 1];while(l < r){int mid = l + (r - l) / 2;if(check(matrix, mid) < k){  // <=mid的个数<kl = mid + 1;} else {r = mid;}}return l;}
};

1. 两数之和

  • 1. 两数之和
  • 思路1:暴力
  • 思路2:哈希表;时间和空间:O(n)
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int>mp;  // val, indexint size = nums.size();for(int i = 0; i < size; i++){int complement = target - nums[i];if(mp.find(complement) != mp.end()){return {mp[complement], i};}mp[nums[i]] = i;}return {};}
};

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

相关文章

多用户网页聊天室(测试报告)

一、项目背景 随着现代互联网的快速发展&#xff0c;实时通信系统&#xff08;如聊天应用&#xff09;已成为人们日常交流的重要工具。多用户网页聊天室项目旨在为用户提供一个基于Web的实时聊天平台&#xff0c;支持用户之间的即时通信、好友管理和历史消息记录查看。为了提升…

C语言复习概要(二)

本文目录 C语言中的数组与函数详解1. 引言2. 数组2.1. 什么是数组&#xff1f;语法&#xff1a;示例&#xff1a; 2.2. 数组的初始化示例 1&#xff1a;在声明时初始化示例 2&#xff1a;部分初始化示例 3&#xff1a;运行时赋值 2.3. 数组的访问与修改示例&#xff1a; 2.4. 多…

第十八讲-布局管理QVBoxLayout

QVBoxLayout 是 PyQt5 中用于在垂直方向上排列小部件(widgets)的布局管理器。它将子小部件从上到下按顺序排列,可以通过添加、插入、设置间距和对齐方式等方法对布局进行控制。QVBoxLayout 主要用于创建简单且整洁的界面。 初步示例 下面是一个简单的示例,展示了如何使用 …

SLF4J报错log4j又报错

项目场景&#xff1a; 搭建一个spirngboot项目&#xff0c;启动运行时&#xff0c;SLF4J报错 解决后 ~ log4j又报错了。 问题描述 首先是SLF4J报错了&#xff0c;解决完SL4J报错问题后&#xff0c;再次启动项目&#xff0c;log4j又报错了 。。。 报错信息&#xff1a; SLF4J…

WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!

前言 今天大姚给大家分享一套基于.NET 8.0 LayUI的快速开发框架&#xff0c;项目完全开源、免费&#xff08;MIT License&#xff09;且开箱即用&#xff1a;WaterCloud。 可完全实现二次开发让开发更多关注业务逻辑。既能快速提高开发效率&#xff0c;帮助公司节省人力成本&…

安宝特分享 | AR技术重塑工业:数字孪生与沉浸式培训的创新应用

在数字化转型的浪潮中&#xff0c;AR&#xff08;增强现实&#xff09;技术与工业的结合正在呈现新的趋势和应用延伸。特别是“数字孪生”概念的崛起&#xff0c;为AR技术在工业中提供了独特而创新的切入点。 本文将探索AR如何与数字孪生、沉浸式体验和实用案例相结合&#xf…

【一文读懂】C#如何实现通用的排序功能

目录 通用排序功能 1.升序 2.降序 测试 1.测试代码 2.测试结果 本篇文章来分享一下C#如何实现通用的排序功能。在项目中经常会使用到排序的方法&#xff0c;那如何使排序方法更加通用呢&#xff1f;可以通过泛型&#xff0c;接口&#xff0c;委托来实现。 通用排序功能…

动态规划基础1

dp就是动态规划&#xff08;废话&#xff09; 我们先来看一道最为基础的dp题&#xff1a; 三角形最小路径和&#xff08;leetcode) 给定一个三角形 triangle &#xff0c;找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 …