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

网站无法处理请求ppt模板大全百度云

网站无法处理请求,ppt模板大全百度云,拓者室内设计官网拓者室内设计官网,一键建站系统源码废话不多说#xff0c;喊一句号子鼓励自己#xff1a;程序员永不失业#xff0c;程序员走向架构#xff01;本篇Blog的主题是【原地哈希】#xff0c;使用【数组】这个基本的数据结构来实现#xff0c;这个高频题的站点是#xff1a;CodeTop#xff0c;筛选条件为…废话不多说喊一句号子鼓励自己程序员永不失业程序员走向架构本篇Blog的主题是【原地哈希】使用【数组】这个基本的数据结构来实现这个高频题的站点是CodeTop筛选条件为目标公司最近一年出现频率排序由高到低的去牛客TOP101去找只有两个地方都出现过才做这道题CodeTop本身汇聚了LeetCode的来源确保刷的题都是高频要面试考的题。 明确目标题后附上题目链接后期可以依据解题思路反复快速练习题目按照题干的基本数据结构分类且每个分类的第一篇必定是对基础数据结构的介绍。 缺失的第一个正整数【MID】 又是一道考验数组结构与哈希表结合的题 题干 直接粘题干和用例 解题思路 原题解地址由于题目要求我们「只能使用常数级别的空间」而要找的数一定在 [1, N 1] 左闭右闭这里 N 是数组的长度这个区间里。因此我们可以就把原始的数组当做哈希表来使用。事实上哈希表其实本身也是一个数组我们要找的数就在 [1, N 1] 里最后 N 1 这个元素我们不用找。因为在前面的 N 个元素都找不到的情况下我们才返回 N 1 ** 按照桶排序思路进行预处理保证 1 出现在 nums[0] 的位置上2 出现在 nums[1] 的位置上…n 出现在 nums[n - 1] 的位置上。不在 [1, n] 范围内的数不用动**。例如样例中 [3,4,-1,1] 将会被预处理成 [1,-1,3,4]。遍历 nums找到第一个不在应在位置上的 [1, n] 的数。如果没有找到说明数据连续答案为 n 1。例如样例预处理后的数组 [1,-1,3,4] 中第一个 nums[i] ! i 1 的是数字 2i 1。 这个思想就相当于我们自己编写哈希函数这个哈希函数的规则特别简单那就是数值为 i 的数映射到下标为 i - 1 的位置。 代码实现 给出代码实现基本档案 基本数据结构数组 辅助数据结构无 算法迭代 技巧双指针逆序双指针 其中数据结构、算法和技巧分别来自 10 个数据结构数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树10 个算法递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法技巧双指针、滑动窗口、中心扩散 当然包括但不限于以上 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param nums int整型一维数组* return int整型*/public int minNumberDisappeared (int[] nums) {// 原地hash元素位置1元素值(i1nums[i]inums[i]-1)才满足各回各家先将元素归位for (int i 0; i nums.length; i) {while (nums[i] 0 nums[i] nums.length nums[i] ! nums[nums[i] - 1]) {swap(nums, i, nums[i] - 1);}}// 遍历一遍数组找到第一个不符合条件的返回for (int i 0; i nums.length; i) {if (nums[i] ! i1) {return i 1;}}return nums.length 1;}// 交换元素位置private void swap(int[] nums, int i, int j) {int temp nums[i];nums[i] nums[j];nums[j] temp;} }原地哈希就相当于让每个数字n都回到下标为n-1的家里那些没有回到家里的就成了流浪汉他们要么是根本就没有自己的家数字小于等于0或者大于nums.size()要么是自己的家被别人占领了出现了重复。这些流浪汉被临时安置在下标为i的空房子里之所以有空房子是因为房子i的主人i1失踪了数字i1缺失。因此通过原地构建哈希让各个数字回家我们就可以找到原始数组中重复的数字还有消失的数字。 为什么内部是while循环我们的目标是把nums[i]在[1,N]范围内的数字归位所以每个有家的流浪汉都要找到它的房子i位置上的流浪汉找到了自己的房子nums[i]-1但nums[i]-1房子被赶出来的流浪汉的房子却未必是i位置它需要临时住在i并继续找自己的房子。所以直到nums[i]-1换回来的流浪汉正好对应i这个房子或这个流浪汉压根就没房子非【1-N】范围的值这次寻找才算结束判断条件为什么有nums[i] 0 nums[i] nums.length对于[7,8,9,10]这种数来说因为不可能满足哈希映射条件交换操作还会导致数组越界所以没必要也不能进行移动流浪汉压根没房子判断条件为什么是 nums[i] ! nums[nums[i] - 1]。因为对于[3,4,3,1]这种数来说i!nums[i]-1虽然满足条件但是交换后因为还是[3,4,3,1]所以会导致一直交换死循环所以要采取更严苛的判断条件避免重复元素交换也就是交换位置上的数不能相同而且值得注意的是满足 nums[i] ! nums[nums[i] - 1]其实就一定满足i!nums[i]-1 复杂度分析 时间复杂度O(N)。遍历了一遍数组时间复杂度为ON空间复杂度O(1)。 需要建立长度为 mn 的中间数组
http://www.hkea.cn/news/14399089/

相关文章:

  • 柳州城乡建设管理局网站深圳沙头角网站建设
  • 什么是网站平台开发百度网站加v
  • 网站设计的书深圳做公司英文网站多少钱
  • 深圳服务网站建设如何做电商运营推广
  • 个人网站建设存在哪些问题营销型企业网站的提出
  • 自己怎么做wap网站个人备案网站用于企业
  • 孟村网 网站类模板模板下载网站
  • 做直播网站宽带河北工程大学网站开发成本
  • wap站开发shopify是什么平台
  • 黄页网站大全免费网在线电子类 购物网站
  • 一个网站的建立需要什么同城推广引流平台
  • 怎么把网站放到服务器池州网站建设电话
  • 营销型网站建设应该考虑哪些因素会员管理系统哪个好用
  • 网站建设三把火科技wordpress自动给关键词加内链方法
  • 泰安哪个做网站wordpress 指定目录页
  • 电商网站布局设计营销型wordpress模板
  • 如何高效的完成网站建设步骤手工制作大全简单
  • 托管网站是什么意思软件开发工具教材
  • 罗湖网站建前端开发软件哪个最好
  • 我的网站首页打不开用户体验网站
  • 吉林响应式网站价格曲阜网站设计
  • 电子商务网站建设预算网站建设培训 店
  • 网站设置访问密码python做一个简单的网页
  • 社交网站 用户互黏度一级造价工程师吧
  • 图片外链上传网站展台设计搭建
  • 申请一个网站wordpress做seo优化
  • 推销网站的方法开发电子商务系统的五个步骤
  • 网站可能存在什么问题吗网站图片浏览特效
  • 网站建设中长出现的问题网站建设公司倒闭
  • 长春做网站公司长春seo公司ppt模板怎么套用