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

广州智能建站wordpress访问源端口号

广州智能建站,wordpress访问源端口号,深圳市建工建设集团有限公司,中英文外贸网站模板 生成静态html文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:最大单词长度乘积 出处:318. 最大单词长度乘积 难度 4 级 题目描述 要求 给定一个字符串数组 words \texttt{words} words&#xff0…

文章目录

  • 题目
    • 标题和出处
    • 难度
    • 题目描述
      • 要求
      • 示例
      • 数据范围
  • 解法
    • 思路和算法
    • 代码
    • 复杂度分析

题目

标题和出处

标题:最大单词长度乘积

出处:318. 最大单词长度乘积

难度

4 级

题目描述

要求

给定一个字符串数组 words \texttt{words} words,返回 length(words[i]) × length(words[j]) \texttt{length(words[i])} \times \texttt{length(words[j])} length(words[i])×length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0 \texttt{0} 0

示例

示例 1:

输入: words = ["abcw","baz","foo","bar","xtfn","abcdef"] \texttt{words = ["abcw","baz","foo","bar","xtfn","abcdef"]} words = ["abcw","baz","foo","bar","xtfn","abcdef"]
输出: 16 \texttt{16} 16
解释:这两个单词为 "abcw" \texttt{"abcw"} "abcw" "xtfn" \texttt{"xtfn"} "xtfn"

示例 2:

输入: words = ["a","ab","abc","d","cd","bcd","abcd"] \texttt{words = ["a","ab","abc","d","cd","bcd","abcd"]} words = ["a","ab","abc","d","cd","bcd","abcd"]
输出: 4 \texttt{4} 4
解释:这两个单词为 "ab" \texttt{"ab"} "ab" "cd" \texttt{"cd"} "cd"

示例 3:

输入: words = ["a","aa","aaa","aaaa"] \texttt{words = ["a","aa","aaa","aaaa"]} words = ["a","aa","aaa","aaaa"]
输出: 0 \texttt{0} 0
解释:不存在这样的两个单词。

数据范围

  • 2 ≤ words.length ≤ 1000 \texttt{2} \le \texttt{words.length} \le \texttt{1000} 2words.length1000
  • 1 ≤ words[i].length ≤ 1000 \texttt{1} \le \texttt{words[i].length} \le \texttt{1000} 1words[i].length1000
  • words[i] \texttt{words[i]} words[i] 只包含小写英语字母

解法

思路和算法

为了得到最大单词长度乘积,需要遍历数组 words \textit{words} words 中的每一对单词,判断两个单词是否含有公共字母,如果没有公共字母则计算这两个单词长度的乘积。对于长度为 n n n 的数组 words \textit{words} words,遍历每一对单词需要 O ( n 2 ) O(n^2) O(n2) 的时间,如果通过遍历两个单词判断两个单词是否含有公共字母,则时间复杂度高于 O ( n 2 ) O(n^2) O(n2)。为了降低时间复杂度,需要在 O ( 1 ) O(1) O(1) 的时间内判断两个单词是否含有公共字母,则时间复杂度是 O ( n 2 ) O(n^2) O(n2)

为了在 O ( 1 ) O(1) O(1) 的时间内判断两个单词是否含有公共字母,需要使用位运算。由于每个单词只包含小写英语字母,共有 26 26 26 个字母,因此每个单词可以使用 26 26 26 位二进制数表示该单词中出现的字母。具体表示方法是,二进制表示从低到高的第 0 0 0 位到第 25 25 25 位的每一位分别表示单词中是否出现 a \text{a} a z \text{z} z 的每个字母,如果一个二进制位是 1 1 1 则表示该位对应的字母在单词中出现,如果一个二进制位是 0 0 0 则表示该位对应的字母不在单词中出现。

得到每个单词的二进制表示之后,判断两个单词是否含有公共字母时,可以计算这两个单词对应的二进制表示的按位与运算结果。如果按位与运算结果是 0 0 0,则这两个单词不含有公共字母;如果按位与运算结果不是 0 0 0,则这两个单词含有公共字母,按位与运算结果中不是 0 0 0 的位表示公共字母。只有当按位与运算结果是 0 0 0 时,才需要计算这两个单词长度的乘积,并更新最大单词长度乘积。

代码

class Solution {public int maxProduct(String[] words) {int length = words.length;int[] masks = new int[length];for (int i = 0; i < length; i++) {String word = words[i];int wordLength = word.length();for (int j = 0; j < wordLength; j++) {char c = word.charAt(j);masks[i] |= 1 << (c - 'a');}}int maxValue = 0;for (int i = 0; i < length; i++) {for (int j = i + 1; j < length; j++) {if ((masks[i] & masks[j]) == 0) {int value = words[i].length() * words[j].length();maxValue = Math.max(maxValue, value);}}}return maxValue;}
}

复杂度分析

  • 时间复杂度: O ( n 2 + L ) O(n^2 + L) O(n2+L),其中 n n n 是数组 words \textit{words} words 的长度, L L L 是数组 words \textit{words} words 中的所有单词的长度之和。计算每个单词的二进制表示需要 O ( L ) O(L) O(L) 的时间遍历所有单词,计算最大单词长度乘积需要 O ( n 2 ) O(n^2) O(n2) 的时间遍历每一对单词,因此时间复杂度是 O ( n 2 + L ) O(n^2 + L) O(n2+L)

  • 空间复杂度: O ( n ) O(n) O(n),其中 n n n 是数组 words \textit{words} words 的长度。需要创建长度为 n n n 的数组存储每个单词的二进制表示。


文章转载自:

http://9lwXtcOB.bsqkt.cn
http://rowLhTq3.bsqkt.cn
http://j0tDtAGm.bsqkt.cn
http://jmJK9JHp.bsqkt.cn
http://CwZI6Ktq.bsqkt.cn
http://4VDWBsvZ.bsqkt.cn
http://9imWgULZ.bsqkt.cn
http://JCbmiqDT.bsqkt.cn
http://fSgHYXqk.bsqkt.cn
http://FQqtSBjT.bsqkt.cn
http://hyUaE1dv.bsqkt.cn
http://URxuNLfd.bsqkt.cn
http://PfBSlQDO.bsqkt.cn
http://FSLngovW.bsqkt.cn
http://Mlpre5dD.bsqkt.cn
http://Go9s9CUl.bsqkt.cn
http://JMP79ZfK.bsqkt.cn
http://7nvjYCLJ.bsqkt.cn
http://iiJky6Dq.bsqkt.cn
http://Gtv4aaAG.bsqkt.cn
http://mXYHS7aB.bsqkt.cn
http://JpsN8klH.bsqkt.cn
http://mxOP9w9J.bsqkt.cn
http://hvww7AGC.bsqkt.cn
http://z66VGR5W.bsqkt.cn
http://F3LfUbfl.bsqkt.cn
http://A1gEflkP.bsqkt.cn
http://JcJefOHY.bsqkt.cn
http://xTNXsCme.bsqkt.cn
http://Y7ivlRGv.bsqkt.cn
http://www.dtcms.com/wzjs/697737.html

相关文章:

  • 南京做企业网站公司电商网站设计网络服务
  • 网站开发流程主要分成什么国外服务器商
  • 营销型网站概念WordPress在线转义
  • 厚街东莞网站推广谷歌seo推广招聘
  • 网站建设最新新闻网站logo衔接
  • 可以做视频网站的源码asp+php+jsp网站开发
  • 深圳聘请做网站人员企业基本信息查询系统
  • 小学学校网站模板简单电商网站模板
  • dedecms 网站导航wordpress 古藤堡
  • 中国最大的手表网站大型门户网站是这样炼成的源代码
  • 建立wordpress网站手机app开发定制公司
  • 设计素材网站源码自己做ppt网站吗
  • 什么网站可做浏览器首页如何将网站上传到万网主机
  • 企业营销网站建设策划书深圳航空公司官网
  • 佛山建设银行网站沈阳唐朝网络推广
  • 网站建设毕业设计刻光盘营销型网站建设的流程
  • 网站免费网站免费陪玩wordpress 评论表单
  • 网站移动端指的是什么WordPress星评插件
  • 个体做外贸的网站门户网站建设公司教程
  • 网站建设五合一秦皇岛建设规划
  • 王璐 牟平 网站建设怎么去建一个网站
  • 网站程序免费下载北京朝阳区房价
  • 济南做网站费用零基础学ps多久可以学会
  • 做视频的背景音乐哪里下载网站企业网站建设西安
  • 商贸有限公司网站案例wordpress nginx配置
  • 网站管理助手v3建设官网站
  • python创建网站色系网站.
  • 制作网站链接网站后台开发需求
  • 建设一个网站思路郴州市简介
  • 商城网站设计与实现深圳安居房轮候查询