网站建设是属于软件开发费吗淘宝网可以做网站吗

张小明 2026/1/16 15:15:27
网站建设是属于软件开发费吗,淘宝网可以做网站吗,广东省建设厅的注册中心网站,access快速开发平台前言#xff1a;这是力扣第3433的一道中等算法题#xff0c;废话不多说#xff0c;看题目和代码#xff01;题目#xff1a;给你一个整数 numberOfUsers 表示用户总数#xff0c;另有一个大小为 n x 3 的数组 events 。每个 events[i] 都属于下述两种类型之一#xff1a…前言这是力扣第3433的一道中等算法题废话不多说看题目和代码题目给你一个整数numberOfUsers表示用户总数另有一个大小为n x 3的数组events。每个events[i]都属于下述两种类型之一消息事件Message Event[MESSAGE, timestampi, mentions_stringi]事件表示在timestampi时一组用户被消息提及。mentions_stringi字符串包含下述标识符之一idnumber其中number是一个区间[0,numberOfUsers - 1]内的整数。可以用单个空格分隔 多个 id 并且 id 可能重复。此外这种形式可以提及离线用户。ALL提及 所有 用户。HERE提及所有 在线 用户。离线事件Offline Event[OFFLINE, timestampi, idi]事件表示用户idi在timestampi时变为离线状态 60 个单位时间。用户会在timestampi 60时自动再次上线。返回数组mentions其中mentions[i]表示 id 为i的用户在所有MESSAGE事件中被提及的次数。最初所有用户都处于在线状态并且如果某个用户离线或者重新上线其对应的状态变更将会在所有相同时间发生的消息事件之前进行处理和同步。注意 在单条消息中同一个用户可能会被提及多次。每次提及都需要被 分别 统计。示例 1输入numberOfUsers 2, events [[MESSAGE,10,id1 id0],[OFFLINE,11,0],[MESSAGE,71,HERE]]输出[2,2]解释最初所有用户都在线。时间戳 10 id1和id0被提及mentions [1,1]时间戳 11 id0离线 。时间戳 71 id0再次 上线 并且HERE被提及mentions [2,2]示例 2输入numberOfUsers 2, events [[MESSAGE,10,id1 id0],[OFFLINE,11,0],[MESSAGE,12,ALL]]输出[2,2]解释最初所有用户都在线。时间戳 10 id1和id0被提及mentions [1,1]时间戳 11 id0离线 。时间戳 12 ALL被提及。这种方式将会包括所有离线用户所以id0和id1都被提及mentions [2,2]示例 3输入numberOfUsers 2, events [[OFFLINE,10,0],[MESSAGE,12,HERE]]输出[0,1]解释最初所有用户都在线。时间戳 10 id0离线 。时间戳 12 HERE被提及。由于id0仍处于离线状态其将不会被提及mentions [0,1]提示1 numberOfUsers 1001 events.length 100events[i].length 3events[i][0]的值为MESSAGE或OFFLINE。1 int(events[i][1]) 105在任意MESSAGE事件中以idnumber形式提及的用户数目介于1和100之间。0 number numberOfUsers - 1题目保证OFFLINE引用的用户 id 在事件发生时处于 在线 状态。题目分析这个题目就是一个计算用户被的次数简单理解ALL所有人HERE在线人员所有就可以理解成对于 ALL 用一个变量统计所有用户被提及的次数看到ALL就所有人加1。对于 HERE 消息1、先认为所有用户都被提及了把如同ALL加1。2、此刻离线的用户不能被计入需要把这些用户的提及次数减1。比如一个用户在 5 时刻离线在 65 时刻在线那么发生在 [5,64] 中的 HERE 消息个数就是需要减去的提及次数。借鉴 前缀和 的思想用 [0,64] 中的 HERE 消息个数减去 [0,4] 中的 HERE 消息个数即为 [5,64] 中的 HERE 消息个数。把离线事件、上线事件、HERE 消息混在一起按照发生时间排序。相同时间的HERE 消息排在后面。然后遍历这些事件同时统计 HERE 消息个数 here。离线时加上 here在线时减去 here。这样一加一减最终减去的就是离线时的 HERE 消息个数。代码class Solution {public int[] countMentions(int numberOfUsers, ListListString events) {int[] ans new int[numberOfUsers];Listint[] es new ArrayList(); // (timestamp, type, id)int all 0;for (ListString e : events) {int curT Integer.parseInt(e.get(1)); // 当前时间String mention e.get(2);if (e.get(0).charAt(0) O) { // 离线int i Integer.parseInt(mention);es.add(new int[]{curT, 1, i});es.add(new int[]{curT 60, -1, i});} else if (mention.charAt(0) A) { // 所有人all;} else if (mention.charAt(0) H) { // 所有在线用户all;es.add(new int[]{curT, 2, -1});} else { // idfor (String s : mention.split( )) {int i Integer.parseInt(s.substring(2));ans[i];}}}es.sort((a, b) - a[0] ! b[0] ? a[0] - b[0] : a[1] - b[1]);int here 0;for (int[] e : es) {int type e[1];if (type 2) {here;} else {// 注意 HERE 排在后面还没有计入发生在此刻的 HERE 消息ans[e[2]] type * here; // type1 是加-1 是减}}for (int i 0; i numberOfUsers; i) {ans[i] all;}return ans;}}代码分析1、初始化一个ans数组用于统计每个用户被提交艾特的次数一个es列表用于存events中每个事件一个all变量统计存放被次数提交次数int[] ans new int[numberOfUsers];Listint[] es new ArrayList(); // (timestamp, type, id)int all 0;2、逻辑实现events [[MESSAGE,10,id1 id0],[OFFLINE,11,0],[MESSAGE,71,HERE]]events是一个列表含列表在列表里面是字符串先获取每个事件的时间戳和idid这里看题要求有三个可能mentions_stringi字符串包含下述标识符之一idnumber其中number是一个区间[0,numberOfUsers - 1]内的整数。可以用单个空格分隔多个id 并且 id 可能重复。此外这种形式可以提及离线用户。ALL提及所有用户。HERE提及所有在线用户。然后all是所有人加1here也是先所有人加1后面删减不符合的同时离线和离线在上线都需要加入到数组es为后续计算here最后还需要注意一下案例一那种情况!for (ListString e : events) {int curT Integer.parseInt(e.get(1)); // 当前时间String mention e.get(2);if (e.get(0).charAt(0) O) { // 离线int i Integer.parseInt(mention);es.add(new int[]{curT, 1, i});//离线。type 1es.add(new int[]{curT 60, -1, i});//重新上线 type -1} else if (mention.charAt(0) A) { // 所有人all;} else if (mention.charAt(0) H) { // 所有在线用户all;es.add(new int[]{curT, 2, -1});//here type 2} else { // idfor (String s : mention.split( )) {int i Integer.parseInt(s.substring(2));ans[i];}}}3、排序对es数组进行排序每个列表的第一个是时间戳按时间戳升序排序如果时间相等先是type -1 即重新上线的在type 1 即离线 最后再是type 2 即here也是升序es.sort((a, b) - a[0] ! b[0] ? a[0] - b[0] : a[1] - b[1]);4、计算here这里就是扣除here因为统计here个数离线是1是先记着一旦上线变成-1就扣除之前统计的hereint here 0;for (int[] e : es) {int type e[1];if (type 2) {here;} else {// 注意 HERE 排在后面还没有计入发生在此刻的 HERE 消息ans[e[2]] type * here; // type1 是加-1 是减}}5、每个用户加上all的次数按题目分析的每个用户都加allfor (int i 0; i numberOfUsers; i) {ans[i] all;}结语这道题是力扣算法可以参考 灵神 的思路和解法加油
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

亚马逊服务器做影视网站怎样让网站做301处理

火山引擎AI大模型接入Qwen-Image,提升企业级服务能力 在数字内容爆发式增长的今天,企业对视觉素材的需求早已从“有图可用”转向“精准表达”。无论是电商平台需要千人千面的商品主图,还是品牌方追求高度一致的全球传播视觉,传统设…

张小明 2026/1/3 7:52:06 网站建设

网站续费服务内容wdcp wordpress搬家

BBDown全功能指南:解锁B站视频下载的无限可能 【免费下载链接】BBDown Bilibili Downloader. 一款命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 还在为无法保存B站优质内容而烦恼吗?BBDown作为一款专业的命令行下…

张小明 2026/1/3 7:52:04 网站建设

做牙齿技工找工作去哪个网站英文版wordpress主题

I2C总线原理通俗解释:从零搞懂通信机制与实战设计你有没有遇到过这样的场景?一块小小的MCU,要接温度传感器、加速度计、实时时钟、EEPROM存储芯片……如果每个外设都用独立的通信线,GPIO口很快就不够用了。这时候,工程…

张小明 2026/1/4 10:38:03 网站建设

如何在网站上做咨询浮动窗口网站建设业务培训资料

今天给大家推荐两款处理“此电脑”的实用软件,感兴趣的小伙伴们赶紧保存吧! ONE MyComputerManager 最近我打开“此电脑”,发现里面有三个网盘的快捷方式,简直让我这个有点强迫症的人受不了。 因此,我找到了今天要推…

张小明 2026/1/9 21:59:34 网站建设

苏州网站建设网站制作的公司商城平台建设

基于GaN器件的高效D类音频放大器设计在高保真音响系统持续演进的今天,效率与音质之间的权衡始终是功率电子工程师面临的核心挑战。传统AB类放大器虽具备良好的线性度,但其低效带来的发热问题严重制约了紧凑型设备的设计空间;而常规D类放大器尽…

张小明 2026/1/12 1:53:53 网站建设

网站建设系统课程设计软件培训班学费一般多少

Shell编程进阶:流程控制、字符串与数字处理 1. 命令行参数处理 在编写Shell脚本时,命令行参数处理是一项重要的功能。以 sys_info_page 程序为例,我们可以添加多个命令行选项,如指定输出文件、交互式模式和帮助信息。 指定输出文件 :使用 -f file 或 --file file…

张小明 2026/1/12 7:40:55 网站建设