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

电子商务网站建设的方法有哪些方面全渠道营销管理平台

电子商务网站建设的方法有哪些方面,全渠道营销管理平台,中国联通与腾讯设立合作,wordpress 静态化 cosLeetCode1287 目录 题目描述示例思路分析代码段代码逐行讲解复杂度分析总结的知识点整合总结 题目描述 给定一个非递减的整数数组 arr,其中有一个元素恰好出现超过数组长度的 25%。请你找到并返回这个元素。 示例 示例 1 输入: arr [1, 2, 2, 6, 6, 6, 6, 7,…

LeetCode1287

目录

  • 题目描述
  • 示例
  • 思路分析
  • 代码段
  • 代码逐行讲解
  • 复杂度分析
  • 总结的知识点
  • 整合
  • 总结

题目描述

给定一个非递减的整数数组 arr,其中有一个元素恰好出现超过数组长度的 25%。请你找到并返回这个元素。


示例

示例 1

输入:

arr = [1, 2, 2, 6, 6, 6, 6, 7, 10]

输出:

6

解释:

  • 数组长度为 9,6 出现了 4 次,超过了 25%(即 2.25 次)。

示例 2

输入:

arr = [1, 1]

输出:

1

解释:

  • 数组长度为 2,1 出现了 2 次,超过了 25%(即 0.5 次)。

思路分析

问题核心

我们需要找到一个在数组中出现次数超过数组长度 25% 的元素。

思路拆解

  1. 特殊情况处理
    • 如果数组长度为 1,直接返回该元素。
  2. 计算阈值
    • 计算数组长度的 25%,即 len / 4
  3. 统计元素频率
    • 使用哈希表 Map 统计每个元素的出现次数。
  4. 判断是否超过阈值
    • 在统计过程中,如果某个元素的出现次数超过阈值,直接返回该元素。

代码段

class Solution {public int findSpecialInteger(int[] arr) {int len= arr.length;if(len==1)return arr[0];int num=len/4;Map<Integer,Integer> map=new HashMap<>();for (int count : arr) {int  temp=map.getOrDefault(count,0)+1;if(temp>num){return count;}else{map.put(count,temp);}}return -1;}
}

在这里插入图片描述


代码逐行讲解

1. 获取数组长度

int len = arr.length;
  • len 是数组的长度,用于后续计算阈值。

2. 特殊情况处理

if (len == 1)return arr[0];
  • 如果数组长度为 1,直接返回该元素。

3. 计算阈值

int num = len / 4;
  • num 是数组长度的 25%,用于判断元素是否超过阈值。

4. 初始化哈希表

Map<Integer, Integer> map = new HashMap<>();
  • map 用于统计每个元素的出现次数。

5. 遍历数组

for (int count : arr) {
  • 使用增强的 for 循环遍历数组中的每个元素。

6. 更新当前元素的频率

int temp = map.getOrDefault(count, 0) + 1;
  • temp 是当前元素的出现次数,初始值为哈希表中的值加 1。

7. 判断是否超过阈值

if (temp > num) {return count;
}
  • 如果当前元素的出现次数超过阈值,直接返回该元素。

8. 更新哈希表

map.put(count, temp);
  • 将当前元素的出现次数更新到哈希表中。

9. 返回默认值

return -1;
  • 如果没有找到符合条件的元素,返回 -1

复杂度分析

时间复杂度

  • 遍历数组一次,时间复杂度为 O(n),其中 n 是数组的长度。

空间复杂度

  • 使用了一个哈希表,最坏情况下需要存储所有元素的频率,因此空间复杂度为 O(n)

总结的知识点

1. 哈希表的使用

  • 使用 HashMap 统计元素的出现次数。

2. 边界条件处理

  • 处理数组长度为 1 的特殊情况。

3. 增强的 for 循环

  • 使用增强的 for 循环遍历数组。

4. 阈值计算

  • 计算数组长度的 25%,用于判断元素是否超过阈值。

整合

class Solution {public int findSpecialInteger(int[] arr) {int len = arr.length; // 数组长度if (len == 1) // 特殊情况处理return arr[0];int num = len / 4; // 计算阈值Map<Integer, Integer> map = new HashMap<>(); // 哈希表统计频率for (int count : arr) { // 遍历数组int temp = map.getOrDefault(count, 0) + 1; // 更新当前元素的频率if (temp > num) { // 判断是否超过阈值return count;} else {map.put(count, temp); // 更新哈希表}}return -1; // 如果没有找到,返回 -1}
}

总结

通过哈希表统计元素的出现次数,并在遍历过程中判断是否超过阈值,能够高效地解决问题。代码逻辑清晰,复杂度控制在合理范围内,适合面试或竞赛场景。希望这个分析对你有帮助!

http://www.dtcms.com/wzjs/250093.html

相关文章:

  • 做网站的图片需要多少钱热点新闻
  • 如何做网站活动封面外链生成
  • 北京市建设工程交易网培训优化
  • 阜阳哪里有做网站的舆情优化公司
  • 微软网站做u盘启动教程深圳全网推广平台
  • 多品牌网站建设百度高级搜索页面的网址
  • 网站开发私单哪里接百度一下子就知道了
  • 电脑用虚拟机做网站网站推广的基本方法是
  • 网站开发的基本条件百度广告联盟官网
  • 企业网站建设哪家服务好 百度一下
  • 做网站的常识数据分析网页
  • 国有资产处网站建设国际新闻稿件
  • 建设网站以后怎么让百度收录呢电子商务营销
  • 宁波网站推广排名大数据分析培训机构
  • 新加坡网站大全百度网址ip
  • 做营养的网站营销网站制作公司
  • 莱芜都市网官网优速网站建设优化seo
  • 微网站怎么制作近期出现的病毒叫什么
  • 云南网站建设c3sales文案写作软件app
  • wordpress搭建教程关键词seo排名优化如何
  • 不懂技术与产品怎样做网站教育培训机构管理系统
  • 网站建设服务费怎么写分录谷歌广告投放步骤
  • 网页与网站设计什么是抖动磁力搜索
  • 做电影网站的服务器需要多大app推广拉新
  • 备案期间怎么做网站简单的html网页制作
  • 内蒙古 网站建设seo综合查询是什么
  • 泉州做网站排名网络游戏推广员的真实经历
  • 独立网店系统哪个好seo引擎搜索入口
  • 如果给公司网站做网络广告hao123网址之家官网
  • 企业网站的类型有哪些企业管理培训课程报名