当前位置: 首页 > news >正文

自己做的网站套dedecms教程/搜狗指数官网

自己做的网站套dedecms教程,搜狗指数官网,现在宁波做网站,专门做辅助的网站809. Expressive Words 思路 根据题目描述,我们可以知道,如果要将某个单词定义为可扩张(stretchy),需要满足如下两个条件: 所以,我们在实现的时候,可以通过两个指针p1和p2&#x…

809. Expressive Words

思路

根据题目描述,我们可以知道,如果要将某个单词定义为可扩张(stretchy),需要满足如下两个条件:

所以,我们在实现的时候,可以通过两个指针p1和p2,分别指向s和word,分别统计连续的相同字符数量c1和c2,然后再通过上述的两个条件进行判断,即:如果

(c1 != c2 && c1 < 3) || (c1 < c2 && c1 >= 3)

则表示该单词不是可扩张的。

代码

class Solution {public int expressiveWords(String s, String[] words) {int result = 0;char[] sc = s.toCharArray();for (String word: words) result += stretchyWord(sc, word.toCharArray()) ? 1 : 0;return result;}private boolean stretchyWord(char[] sc, char[] wc) {if (sc.length < wc.length) return false; // word的字符串长度不允许超过s的字符串长度int cp, p1 = 0, p2 = p1;while ((cp = p1) < sc.length && p2 < wc.length) {int c1 = 0, c2 = 0;while (p1 < sc.length && sc[p1] == sc[cp]) {c1++; p1++; // 在字符串s中,遍历连续的字符sc[cp]的数量}while (p2 < wc.length && wc[p2] == sc[cp]) {c2++; p2++; // 在字符串word中,遍历连续的的字符sc[cp]的数量}if ((c1 != c2 && c1 < 3) || (c1 < c2 && c1 >= 3)) return false;}return p1 == sc.length && p2 == wc.length; // 只有sc和wc都被遍历完毕,才返回true}
}

823. Binary Trees With Factors

思路

代码

class Solution {static final long MOD = (long) 1e9 + 7;public int numFactoredBinaryTrees(int[] arr) {Arrays.sort(arr);long[] ans=new long [arr.length];ans[0]=1;for (int i=1;i<arr.length;i++){ans[i]=1;int left=0;int right=i-1;while (left<=right){while (left<=right){long prod= (long) arr[left] *arr[right];if (prod==arr[i]){break;}else if (prod<arr[i]){left++;}else{right--;}}if (left>right){break;}if (left==right){ans[i]+=ans[left]*ans[left];}else{ans[i]+=ans[left]*ans[right]*2;}left++;right--;}ans[i]%=MOD;}long final_ans=0;for (long val:ans){final_ans=final_ans+val;final_ans%=MOD;}return (int)final_ans;}
}

*828. Count Unique Characters of All Substrings of a Given String

思路 贡献法+双指针

请看下图,我们以s=“ABCD”为例,首先,可以将其拆分为10个子串(以“A”为基准的4个子串;以“B”为基准的3个子串;以“C”为基准的2个子串;以“D”为基准的1个子串;),那么由于s字符串中的字符都是彼此不重复的,所以,总结果其实就是“A”、“B”、“C”、“D”这个四个字符在所有10个子串中出现的次数之和,即:A出现4次 + B出现6次 + C出现6次 + D出现4次 = 20。

通过上面的例子,我们将问题转换为某个字符在子串中出现的个数问题了。那么,针对这个问题,其实有3种情况:

情况1:字符是“头元素”,那么出现次数可以通过:数组长度 - 元素下标位置 来计算出来。
情况2:字符是“尾元素”,那么出现次数可以通过:元素下标位置 - (-1) 来计算出来。
情况3:字符是“中间元素”,那么出现次数可以通过:(元素下标位置 - (-1)) * (数组长度 - 元素下标位置) 来计算出来。



那么前面我们是针对于字符串中字符不重复的情况来看的,下面我们再来看一下有重复字符的情况。其实,针对于这种情况,就产生了区间的概念。因为我们上面进行统计的时候,都是针对于某一区间内这个元素是唯一的,所以,如果发生了重复字符,我们就需要将其拆分为多个区间。以下图s="ABCB"为例,当我们要统计元素“B”的时候,由于发生了重复的情况,所以,我们要将其拆分为:
当B的下标=1的时候,它唯一的区间是[0,2] 当B的下标=3的时候,它唯一的区间是[2,3]
那么,由于产生了区间的概念,我们也随之创建两个指针,分别是head和tail,head指向的某区间开始位置的前一个位置;tail指向的是某区间结束为止的后一个位置。那么计算公式最终就是:(某元素下标位置 - head) * (tail - 某元素下标位置)。

我们得出了计算公式之后,就可以针对给出的字符串s中的每个字符进行遍历,在哈希表中记录一下每个元素的所在位置,key=字符,value=该字符出现的位置集合。具体实现,请参照:代码1-哈希表采用哈希表方式实现。如果需要提升执行效率,我们也可以采用数组来记录每个元素的所在位置,26个字母对应数组的坐标,然后一个数组是用来针对某个元素出现多次进行统计

解题思路我们就说完了。下面我们以s=“LEETCODE”为例,看一下具体的计算过程。由于下图中的计算细节已经在图中写出来了,所以这里的文字部分就不去赘述了。具体的计算过程,请参见下图。
在这里插入图片描述

代码1-哈希表

    public int uniqueLetterString(String s) {HashMap<Character, ArrayList<Integer>> map = new HashMap<>();for (int i = 0; i < s.length(); i++) {if (!map.containsKey(s.charAt(i))) {map.put(s.charAt(i), new ArrayList<>());}map.get(s.charAt(i)).add(i);}int ans = 0;for (var pair : map.entrySet()) {int head = -1;int tail = -1;var items = pair.getValue();for (int i = 0; i < items.size(); i++) {tail = i < (items.size() - 1) ? items.get(i + 1) : s.length();ans += (items.get(i) - head) * (tail - items.get(i));head = items.get(i);}}return ans;}

849. Maximize Distance to Closest Person

思路(双指针+贪心)

我们考虑前一个1出现的位置prev,一直向右遍历的位置i每当seats[i]为1时,iprev相减的值即为距离,求所有可能的距离的最大值即可。注意,在实现代码中,考虑的略复杂了一些 其中while(seat[i]==0)的部分可优化为prev=-1。但是,我们一定需要当遍历结束后强制判断一次,因为可能出现类似 [ 1 , 0 , 0 , 0 ] [1,0,0,0] [1,0,0,0]此类序列。

代码

    int maxDistToClosest(vector<int>& seats) {int prev;int i=0;while (seats[i]==0){i++;}prev=i;int max_length=i;for (i++; i < seats.size(); ++i) {if (seats[i]==0){continue;}int length=i-prev-1;max_length=max((int)ceil((double)length/2),max_length) ;prev=i;}int length=seats.size()-prev-1;if (length>max_length){max_length=length;}return max_length;}

881. Boats to Save People

思路

首先对数组进行排序,设置两个指针leftright。令每次救生艇乘坐的人重量最大。若left+right>limit,则说明位于right位置的人需要一个独立的救生艇。当左右指针相遇时,说明剩下需要一个独立的救生艇,再次+1。

代码

class Solution {public int numRescueBoats(int[] people, int limit) {int ans=0;Arrays.sort(people);int left=0;int right=people.length-1;while (left<=right){while (right>left&&people[left]+people[right]>limit){right--;ans++;}if (left==right){ans++;break;}ans++;left++;right--;}return ans;}
}

904. Fruit Into Baskets

思路 双指针+HashMap

构建一个HashMap,令left指针标注序列开始点,right指针标注序列结束点。
每次将一个新水果fruits[right]加入序列,若map的长度大于2,则右移left指针并对map内的fruits[left]进行-1操作,若map[fruit[left]]为0,则表示已完全移除,map长度减一。从此往复,统计map内key的value和的最大值。

代码

    public int totalFruit(int[] fruits) {HashMap<Integer, Integer> map = new HashMap<>();int left = 0;int right = 0;int ans=0;while (right < fruits.length) {map.merge(fruits[right], 1, Integer::sum);while (map.size() > 2) {map.merge(fruits[left], -1, Integer::sum);if (map.get(fruits[left])==0){map.remove(fruits[left]);}left++;}int curr_ans=0;for (var key:map.keySet()){curr_ans+=map.get(key);}ans=Math.max(ans,curr_ans);right++;}return ans;}

2841. Maximum Sum of Almost Unique Subarray

思路 滑动窗口

用滑动窗口枚举长为 k 的子数组,用哈希表记录子数组中各元素出现的次数,以维护当前子数组中不同元素的个数

代码

class Solution {public long maxSum(List<Integer> nums, int m, int k) {HashMap<Integer,Integer>map=new HashMap<>();int left=0;int right=k;long ans=0;long curr_sum=0;for (int i=0;i<k;i++){curr_sum+=nums.get(i);map.merge(nums.get(i),1,Integer::sum);}if (map.size()>=m){ans=Math.max(curr_sum,ans);}while (right<nums.size()){curr_sum+= nums.get(right);curr_sum-= nums.get(left);map.merge(nums.get(right),1,Integer::sum);map.merge(nums.get(left),-1,Integer::sum);if(map.get(nums.get(left))==0){map.remove(nums.get(left));}if (map.size()>=m){ans=Math.max(curr_sum,ans);}left++;right++;}return ans;}}

2844. Minimum Operations to Make a Special Number

思路 滑动窗口

要想被25整除,末尾数字只能是00255075 。只要从最后一个数字遍历即可,若最后一位数字为5,则向前寻找2或者7、否则向前寻找0或者5。

代码

class Solution {public int minimumOperations(String _num) {char[] num=_num.toCharArray();int ans=120;boolean containsZero=false;int end=num.length-1;while (end>0){if (num[end]=='0'||num[end]=='5'){int prev=end-1;if (num[end]=='0'){containsZero=true;while (prev>=0&&(num[prev]!='5'&&num[prev]!='0')){prev--;}}else {while (prev>=0&&(num[prev]!='2'&&num[prev]!='7')){prev--;}}if (prev>=0){ans=Math.min(ans,end-prev-2+num.length-end);}}end--;}if (ans==120){return containsZero? num.length-1 :num.length ;}return ans;}
}

相关文章:

算法刷题记录-双指针/滑动窗口(LeetCode)

809. Expressive Words 思路 根据题目描述&#xff0c;我们可以知道&#xff0c;如果要将某个单词定义为可扩张&#xff08;stretchy&#xff09;&#xff0c;需要满足如下两个条件&#xff1a; 所以&#xff0c;我们在实现的时候&#xff0c;可以通过两个指针p1和p2&#x…...

Python基础tuple元组定义与函数

元组的特点 有序&#xff1a;元组中的元素是按照顺序排列的。不可更改&#xff1a;一旦创建&#xff0c;元组中的元素不可被修改、增加或删除。元素类型多样化&#xff1a;元组可以包含任何数据类型的元素。 定义一个非空元组 name_tuple (a, b, c, d)定义一个空元组 name…...

【linux命令讲解大全】088.深入理解 shell 脚本中的 trap 命令

文章目录 trap概要主要用途选项参数返回值关于信号例子 从零学 python trap 捕捉信号和其他事件并执行命令。 概要 trap [-lp] [[arg] signal_spec ...]主要用途 用于指定在接收到信号后将要采取的动作。 脚本程序被中断时执行清理工作。 选项 -l&#xff1a;打印信号名称…...

bean的管理-bean的获取

获取bean 默认情况下&#xff0c;在Spring项目启动时&#xff0c;会把bean都创建好&#xff08;但是还会受到作用域及延迟初始化的影响&#xff09;放在IOC容器中&#xff0c;如果想主动获取这些bean&#xff0c;可以通过如下方式 根据name获取bean Object getBean&#xff08…...

如何快速清理已经上传到Git仓库的.DS_Store文件

很久以前&#xff0c;发过这样一篇文章《Git全局忽略MacOS系统下的.DS_Store文件》&#xff0c;主要是针对MacOS用户&#xff0c;如何方便的在自己机器中免疫所有.DS_Store文件的误提交。如果有这个需求&#xff0c;且还没有搞过的读者可以通过上面这篇文章学习。 今天想要分享…...

美的的笔试

第一题 有两只猫咪和n条不同类型的鱼&#xff0c;每条鱼都只能被其中一只猫咪吃掉。 下标为i处的鱼被吃掉的得分为: 如果第一只猫咪吃掉,则得分为reward1[i]。如果第二只猫咪吃掉,则得分为reward[i]。 给你一个正整数数组reward1 &#xff0c;一个正整数数组reward2&#xff0…...

Android 1.2 开发环境搭建

目录 1.2 开发环境搭建 1.JDK安装与配置 2.开发工具二选一 3.相关术语的解析 4.ADB命令行的一些指令 5.APP程序打包与安装的流程&#xff1a; 6.APP的安装过程&#xff1a; 7.本节小结 1.2 开发环境搭建 现在主流的Android开发环境有: ①Eclipse ADT SDK ②Android Stu…...

vue 页面加水印

首先创建一个waterMark.js文件&#xff0c;当然文件命名可自定义&#xff0c; use strictconst watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container*/ const setWatermark (str, container) > {const id 1.23452384164.123412415…...

Android ImageView详解

scaleType属性详解 在 Android 中&#xff0c;ImageView 控件的 scaleType 属性用于指定图像在 ImageView 内部的缩放和对齐方式。scaleType 属性可以帮助你控制图像的显示方式&#xff0c;以适应 ImageView 的尺寸或实现其他特定的显示效果。以下是常见的 scaleType 属性值和…...

ElasticSearch第二讲:ES详解 - ElasticSearch基础概念

ElasticSearch第二讲&#xff1a;ES详解 - ElasticSearch基础概念 在学习ElasticSearch之前&#xff0c;先简单了解下ES流行度&#xff0c;使用背景&#xff0c;以及相关概念等。本文是ElasticSearch第二讲&#xff0c;ElasticSearch的基础概念。 文章目录 ElasticSearch第二讲…...

Ajax模拟视频点赞功能

前台 <%--Created by IntelliJ IDEA.User: xxDate: 2023/9/4Time: 10:00To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head>&l…...

java解决 衣服尺码 Compare T-Shirt Sizes

java解决衣服尺码 时间限制&#xff1a;3000MS 内存限制&#xff1a;589824KB 题目描述&#xff1a; 一般来说衣服尺码分为L&#xff0c;M&#xff0c;S三种&#xff0c;分别代表大(Large)&#xff0c;中(Medium)和小(Small)。不过由于人的身高差异性较大&#xff0c;尺码又会…...

基于python+Django深度学习的音乐推荐方法研究系统设计与实现

摘 要 数字化时代带动着整个社会的信息化发展&#xff0c;随着数字媒体的不断发展&#xff0c;现在通多媒体数字产品的内容越来越丰富&#xff0c;传播影响力越来越强&#xff0c;以音乐为例&#xff0c;现在的音乐文化多样、音乐资源也异常的丰富&#xff0c;在这种大数据的环…...

【枚举区间+线段树】CF Ehu 152 E

Problem - E - Codeforces 题意&#xff1a; 思路&#xff1a; 感觉是个套路题 对区间计数&#xff0c;按照CF惯用套路&#xff0c;枚举其中一个端点&#xff0c;对另一个端点计数 对于这道题&#xff0c;枚举右端点&#xff0c;对左端点计数 Code&#xff1a; #include &…...

宏定义天坑记录

宏定义天坑记录 事件原委与推理过程 在编译一个使用了Protobuf的项目时出现了如下报错 [ybVM-8-7-centos boost_searcher]$ make g -o http_server http_server.cc data/raw_html.pb.cc -stdc11 -lboost_system -lboost_filesystem -lpthread -ljsoncpp -lprotobuf In file…...

Git的一些常用概念与操作方法分享

Git是一个版本控制系统&#xff0c;它可以记录代码的变化历史并允许多个开发者同时对同一代码库进行开发。以下是Git的基本概念和使用方式&#xff1a; 仓库&#xff08;Repository&#xff09;- 保存代码的地方。Git仓库包含了所有的版本历史记录、代码以及其他相关文件。 分…...

webpack实战:某网站JS逆向分析

文章目录 1. 写在前面2. 抓包分析3. 扣加密代码 1. 写在前面 好的逆向能够帮助我们了解加密实现&#xff0c;然后根据加密方式&#xff08;md5,base64,res,des,rsa…)还原加密算法的过程。可以看看我之前的这篇文章&#xff1a;快速定位查找加密方式特征与技巧 目标站点&#…...

826. 安排工作以达到最大收益;2257. 统计网格图中没有被保卫的格子数;816. 模糊坐标

826. 安排工作以达到最大收益 核心思想&#xff1a;排序维护最大利润。首先我们需要对工人按照能力排序&#xff0c;前面工人满足的最大利润后面的工人肯定是满足的&#xff0c;所以我们只需要用一个tmp来维护小于等于当前工人的最大利润&#xff0c;然后如何得到tmp&#xff…...

JAVA毕业设计097—基于Java+Springboot+Vue+uniapp的医院挂号小程序系统(源码+数据库)

基于JavaSpringbootVueuniapp的医院挂号小程序系统(源码数据库)097 一、系统介绍 本系统前后端分离(网页端和小程序端都有) 本系统分为管理员、医院、用户三种角色(角色菜单可自行分配) 用户功能&#xff1a; 注册、登录、医院搜索、最新资讯、医生搜索、挂号预约、挂号记…...

4.3.3.1 【MySQL】CHAR(M)列的存储格式

我们知道 Compact 行格式在 CHAR(M) 类型的列中存储数据的时候还挺麻烦&#xff0c;分变长字符集和定长字符集的情况&#xff0c;而在 Redundant 行格式中十分干脆&#xff0c;不管该列使用的字符集是啥&#xff0c;只要是使用 CHAR(M) 类型&#xff0c;占用的真实数据空间就是…...

js 处理数组合并vs对象合并

前言: 前端开发中&#xff0c;我们会遇到各种数据的需求&#xff0c;但是后端给你返回的数据结构又不是你想要的&#xff0c; 只能自己动手&#xff0c;去组装数据&#xff0c;重新定义数据结构了。 1. js 数组合并的方法 常用的应该是 concat 方法. 示例: let arr1 […...

Webpack vs Vite的核心差异

构建速度: Webpack: Webpack的构建速度相对较慢&#xff0c;尤其在大型项目中&#xff0c;因为它需要分析整个依赖图&#xff0c;进行多次文件扫描和转译。Vite: Vite以开发模式下的极速构建著称。它利用ES模块的特性&#xff0c;只构建正在编辑的文件&#xff0c;而不是整个项…...

53、springboot对websocket的支持有两种方式-------1、基于注解开发 WebSocket ,简洁实现多人聊天界面

基于注解开发 WebSocket –注解就是&#xff1a; OnOpen、 OnClose 、 OnMessage 、OnError这些 ★ WebSocket的两种开发方式 ▲ Spring Boot为WebSocket提供了两种开发方式&#xff1a; 基于spring-boot-starter-websocket.jar开发WebSocket 基于Spring WebFlux开发WebSoc…...

18 Linux之Python定制篇-Python开发平台Ubuntu

18 Linux之Python定制篇-Python开发平台Ubuntu 文章目录 18 Linux之Python定制篇-Python开发平台Ubuntu18.1 安装Ubuntu虚拟机18.4 Ubuntu的root用户18.5 Ubuntu下开发Python 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示&…...

AMEYA360:士兰微推出600A/1200V IGBT汽车驱动模块,提升充电速度与行驶动力

随着人们对环保意识的提高和汽车驾驶体验感的不断追求&#xff0c;新能源汽车的市场需求逐渐增大&#xff0c;已然成为汽车发展的大趋势&#xff0c;但是新能源汽车充电时间长、续航里程短等问题仍然是汽车厂商和车主们的痛点。因此&#xff0c;需要更好的汽车驱动产品来实现“…...

【Linux】Epoll Reactor【反应堆】模式的工作流程

Reactor模式的工作流程 主线程往epoll内核事件表中注册socket上的就绪事件。主线程调用epoll_wait等待socket上有数据可读。当socket上有数据可读时&#xff0c;epoll_wait通知主线程。主线程将socket可读事件放入请求队列。睡眠在请求队列上的某个工作线程被唤醒&#xff0c;…...

Php“梦寻”淘宝天猫商品详情数据接口,淘宝商品详情数据API接口,淘宝API接口申请指南(含代码示例)

淘宝商品详情接口 API 是开放平台提供的一种 API 接口&#xff0c;它可以帮助开发者获取淘宝商品的详细信息&#xff0c;包括商品的标题、描述、图片等信息。在淘宝电商平台的开发中&#xff0c;淘宝详情接口 API 是非常常用的 API&#xff0c;因此本文将详细介绍淘宝详情接口 …...

驱动轴相机参数设置Web前端界面开发

一、基于Django的Web应用界面的开发&#xff1a; 在Realtimeresults.html上添加一个按钮组件&#xff0c;获取检测到的轴型和车轮信息&#xff0c;点击后可以获取package.json里存放的json数据&#xff0c;效果如下&#xff1a; 实现逻辑&#xff1a;需要从URL设置、视图函数、…...

论文简读 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

论文地址&#xff1a;https://arxiv.org/pdf/2106.09685.pdf 项目地址&#xff1a;https://github.com/microsoft/LoRA 全文翻译地址&#xff1a;https://zhuanlan.zhihu.com/p/611557340 本来想自行翻译的&#xff0c;但最近没有空 1、关键凝练 1.1 LORA是什么&#xff1f; …...

23062网络编程day7

网络聊天室编写&#xff08;基于UDP&#xff09; 服务器 #include <myhead.h>#define PORT 8888 //端口号&#xff1a;接收方绑定的端口号 #define IP "192.168.114.56" //本机IP#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:&…...