一周刷爆leetcode!(b站视频)

文章目录

  • 一、排序思想的题目
  • 二、使用步骤
    • 1.


一、排序思想的题目

跟着b站一周刷爆leetcode这个视频开始刷一下leetcode的题目
进行一下记录啥的

二、使用步骤

1.

315. 计算右侧小于当前元素的个数
代码如下:
写了一下暴力解法,没有通过
使用归并排序进行优化,实则就是把大问题分成各个小问题,(简化为,如果我左端大于你第二个的左端了,那你后面的也不用看了,直接r-l+1就是个数

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;class solution {// List<Integer> res = new ArrayList();//         for(int i = 0; i < nums.length; i++){//             int t = 0;//             for(int j = i + 1;j < nums.length; j++){//                 if(nums[i] > nums[j]){//                     t++;//                 }//             }//             res.add(t);//         }//         return res;public void process(int[] nums, int l, int r, List<Integer> list, int[] index){int mid = l + ((r - l) >> 1);if( l == r){return ;}//  正常的归并process(nums,l,mid, list, index);process(nums,mid+ 1,r, list, index);merge(nums,l,mid,r,list, index);}// 归并,public void merge(int[] nums,int l,int m,int r,List<Integer> list,int[] index){// index是用来存原来下标的移动的,因为要返回原来对应的一个列表,只能这样记录了int[] temp = new int[r - l + 1];int[] tempIndex = new int[r - l + 1];int p1 = l;int p2 = m + 1;int i = 0;// 左右指针开始移动while(p1 <= m && p2 <= r){if(nums[p1] <= nums[p2]){temp[i] = nums[p2]; //塞进去tempIndex[i] = index[p2]; // 塞下标i++;p2++;}else{//关键点,当左指针大于右指针的时候,右边直接归纳个数即可list.set(index[p1],list.get(index[p1])+r-p2+1); // 右比左小,则加长度temp[i] = nums[p1];tempIndex[i] = index[p1];i++;p1++;}}while(p1 <= m){temp[i] = nums[p1];tempIndex[i] = index[p1];i++;p1++;}while(p2 <= r){temp[i] = nums[p2]; //塞进去tempIndex[i] = index[p2]; // 塞下标i++;p2++;}for(int k= 0; k < temp.length;k++ ){nums[k + l] = temp[k];index[k + l] = tempIndex[k];}}public List<Integer> countSmaller(int[] nums) {// 存放结果List<Integer> list = new ArrayList<>(Collections.nCopies(nums.length, 0));int[] index = new int[nums.length];for(int i = 0;i < nums.length;i++){index[i] = i;}process(nums,0,nums.length-1,list,index);return list;}}// 测试用例
public class test{public static void main(String[] args) {int [] test = {-1,-1};solution s = new solution();s.countSmaller(test);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CHATGPT说这个运算放大器是比较器,我说这是运放典型的同相比例放大器,一个光控电路分析

纠正 图1 光控电路 该电路来自一个问题&#xff0c;链接见文末。 因GPT的分析有误&#xff0c;特此纠正。 引用图片和答案用于分析&#xff0c;如侵权请联系本人。 电路分析&#xff1a; 该电路为光控灯电路&#xff0c;灯光为LED发光二极管 D。 光敏电阻RG的阻值和光线强度关…

6.18作业

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码不匹配&#xf…

翻转数位00

题目链接 翻转数位 题目描述 注意点 可以将一个数位从0变为1找出能够获得的最长的一串1的长度&#xff08;必须是连续的&#xff09; 解答思路 参照题解使用动态规划解决本题&#xff0c;对于任意一个位置i&#xff0c;dp[i][0]表示到达且包含第i位不翻转0最长1的长度&…

使用 rosbag play 更改bag包发布的话题名称

在ROS开发中&#xff0c;有时我们需要回放已记录的ROS包文件&#xff08;.bag&#xff09;&#xff0c;并将其中某个话题的数据重新映射到一个新的话题。这在数据处理、调试和系统集成时非常有用。例如&#xff0c;我们可能有一个记录了点云数据的ROS包文件&#xff0c;其中点云…

Git 拉取指定分支 合并入主分支

前提条件 确保你已经安装了Git&#xff0c;并且已经克隆了自己的仓库到本地。 解决方法 添加远程仓库 假设你已经添加了远程仓库&#xff1a; git remote add upstream https://github.com/username/repo.git 获取远程仓库的分支 获取远程仓库的所有分支信息&#xff1a; g…

游戏心理学Day18

游戏玩家心理 在游戏世界中&#xff0c;设计师的工作总是围绕尽可能留住玩家要展开。在游戏创作时&#xff0c;设计师会假设目标诉讼的特点并激励迎合他们的需求&#xff0c;如果这种假设是经过实际调研之后做出的&#xff0c;那么就会比较接近实际情况而。如果这种假设是设计…

思科配置路由器,四台主机互相ping通

一、如图配置 PC4和PC5用来配置路由器&#xff0c;各ip、接口如图所示。 二、配置各主机ip、子网掩码SNM、默认网关DGW (一)、PC0 (二)、PC1 (三)、PC2 (四)、PC3 三、 配置路由器Router0 (期间报错是打错了字母) Router>en Router#configure terminal Enter configurat…

golang之Redis常用类型使用

代码仓库 Gitee&#xff1a;https://gitee.com/xiaoyinhui/go-study/tree/master/server/testsGithub&#xff1a;https://github.com/xiaoyin001/go-study/tree/master/server/tests 链接Redis func newRedis() *redis.Client {// 更多 Options 的参数解释可以参考 go Redis…

阶段性总结:如何快速上手一个新的平台或者技术

作为研发一枚&#xff0c;为了实现客户的各种需求&#xff0c;为了避免重复造轮子&#xff0c;通常需要快速调查到哪个轮子&#xff08;比如各种平台&#xff0c;或者开发包等&#xff09;好用&#xff0c;然后快速熟悉和上手。在接触到一个新的平台或者技术的时候&#xff0c;…

更新表的统计信息并清空缓存--DM8达梦数据库

更新表的统计信息并清空缓存--DM8达梦数据库 环境介绍1 收集 <表> 上所有对象信息&#xff0c;含索引2 清理缓存的执行计划3 达梦数据库学习使用列表 环境介绍 在某些环境刚完成数据迁移, 10万行以上大表数据量有修改1/3 ,查询条件已经创建索引,执行计划不好,或执行计划…

开发指南031-安装ssl证书

为增强安全性&#xff0c;平台可安装ssl证书。对于平台不同的组成部分需要采用不同的方式&#xff0c;使用不同的证书格式&#xff1a; 一、前端 前端采用nginx部署&#xff0c;安装证书步骤如下&#xff08;linux window版一样&#xff09;&#xff1a; 1、conf目录下增加cert…

软考阅卷将完成?!软考成绩有望六月底公布!

2024上半年软考考试已于5月25日-28日举行&#xff0c;考完试后大家最关心的事情莫过于查分了。 一、最新消息 1、不同地区在报名时对成绩公布的时间有所预示&#xff0c;但并没有一个统一的日期举个例子&#xff0c;江苏考区预计在6月下旬公布成绩&#xff0c;而黑龙江考区则预…

力扣2476.二叉搜索树最近节点查询

力扣2476.二叉搜索树最近节点查询 二叉搜索树 中序遍历 严格递增数组 在数组上做二分 找到第一个>q的元素的下标j若j < n 则a[j]为maxx若j-1>0 && a[j] ! p 则a[j-1]为minx class Solution {vector<int> a;void dfs(TreeNode* node){if(node null…

glm4、qwen、MiniCPM-Llama3-V代码层面差异性分析

让我们详细解读这个glm4下的 RotaryEmbedding 类&#xff0c;逐行解释代码的工作原理。 类的定义和初始化 class RotaryEmbedding(nn.Module):def __init__(self, dim, rope_ratio1, original_implFalse, deviceNone, dtypeNone):super().__init__()inv_freq 1.0 / (10000 *…

【Altium】Sheet Symbol器件页面符和对应原理图端口同步

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标&#xff1a; 更给原理图端口后&#xff0c;如何同步到对应的sheet symbol 2、应用场景&#xff1a; 使用层次结构原理图设计的情况下&#xff0c;修改了某张原理图上的端口之后&#xff0c;其对应的sheet symbol上的…

APK打包 |应用图标 | 应用名称设置

在 Android 项目中&#xff0c;设置应用的图标和名称是必要的步骤。这些设置通常在 AndroidManifest.xml 和资源文件中进行配置。以下是如何设置应用的图标和名称的详细步骤。 1. 设置应用图标 准备图标资源 首先&#xff0c;准备好你的应用图标。图标应该有多个尺寸&#x…

Java网络爬虫入门

文章目录 1、导入依赖2、CrawlerFirst 1、导入依赖 <dependencies><!-- HttpClient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version></…

面试题之CSS

1. 引入样式的方式 外部样式 link import 区别 内部样式 /* 写在头部标签 */ <style></style>行内样式 2. 三行代码画三角形 .triangle{width:0px;border:100px solid;border-color:transparent transparent transparent red; }3.属性的继承 可继承的属性 …

win10重装系统如何操作,附上详细系统重装图文教程(2024年新)

win10重装系统如何操作呢&#xff1f;电脑使用时间长了&#xff0c;会出现各种各样的问题&#xff0c;如重要的系统文件被删除导致电脑无法正常运行&#xff0c;电脑运行内存空间不足&#xff0c;电脑卡顿等。Win10重装系统很简单&#xff0c;这里分享超详细的重装系统方法&…

【设计模式】面向对象的优点

面向过程 我们知道面向过程是以过程&#xff08;函数、方法、操作&#xff09;作为组织代码的基本单元&#xff0c;数据与方法相分离是其主要的特点。而面向对象是以类、对象作为组织代码的基本单元&#xff0c;数据与方法往往相关联。 面向过程编程语言的特点是不支持类和对…