首页 > 其他分享 >第七天

第七天

时间:2024-03-12 22:12:14浏览次数:18  
标签:map set int vector 哈希 unordered 第七天

c++打卡


一、哈希表理论


  • 哈希表用途:快速判断一个元素是否在集合里
  • 定义:哈希表是根据关键码的值而直接进行访问的数据结构
  • 好处:枚举的时间复杂度为O(n),而使用哈希表,时间复杂度为O(1)
  • 三种哈希结构:数组、集合set、映射map
    • 使用场景:
    • 集合:unordered_set查询、增删快,且不重复set有序,multiset有序且允许重复数据

二、242.有效的字母异位词


  1. 标记字母出现次数

     vector\<int\> record[26] = {0};
     record[string[i] - 'a']++;
    
  2. 思路:利用数组记录字符串中数字出现的次数,若相同,则位有效的字母异位词

三、349.两个数组的交集


  1. 学会数据结构unordered_set:无序,元素一定不重复

     //初始化
     unordered_set\<int\> set;
     //插入元素
     set.insert(1);
     //删除元素
     set.erase(1);
     //判断元素是否在集合中
     if (set.find(1) != set.end())
    
  2. 环境循环:遍历容器的元素

     vector\<int\> set;
     for (int x : set) {
         //循环体
     }
    
  3. 代码尚有问题

     //如何用迭代器初始化?
     unordered_set\<int\> nums_set(nums1.begin(), nums1.end());
     //如何用迭代器生成vector?
     return vector\<int\>(result_set.begin(), result_set.end());
    

四、202.快乐数


  1. 求各个位数之和

     int getSum(int n) {
         int sum = 0;
         while (n) {
             sum += (n % 10);//取模
             n /= 10;//除去最低位
         }
         return sum;
     }
    
  2. 此题考验数学思维

五、1.两数之和


  1. 把问题归结为:使遍历数组,对于遍历到的每个数a,看能否在map中找到target - a

  2. map键值对的插入方法

     map.insert(pair\<int, int\>(a, b))
    
  3. 自动声明变量的关键字auto

标签:map,set,int,vector,哈希,unordered,第七天
From: https://www.cnblogs.com/hello-star/p/18069454

相关文章

  • 代码随想录算法训练营第七天| 454. 四数相加 II 383. 赎金信
    454.四数相加IIhttps://leetcode.cn/problems/4sum-ii/description/、publicintfourSumCount(int[]nums1,int[]nums2,int[]nums3,int[]nums4){intres=0;HashMap<Integer,Integer>map=newHashMap<>();for(inti:nu......
  • Java学习笔记——第七天
    面向对象编程(ObjectOrientedProgramming,OOP)基础面向过程编程开发一个一个的方法,有数据要处理了,我们就调方法来处理。此时程序类似于流水线,按照代码自上而下依次运行。面向对象编程开发一个一个的对象来处理数据,把数据交给对象,再调用对象的方法来完成对数据的处理。程序在对......
  • 找工作学习第七天
    只需要找该元素前面多少个连续元素比他小,后面多少个连续元素比他小,把左右数组记录下来,比较一下哪个大就是了  echarts图表 在div里加上ref属性,加上属性名,this.$refs就可以获取到这个refindex里面等于后端mock,封账了getData函数,等于接口,调用getData就可以获取到数据,第......
  • 第七天
    第七天磁盘结构设备文件一切皆文件:open(),read(),write(),close()设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信设备号码:主设备号:majornumber,标识设备类型次设备号:minornumber,标识同一类型下的不同设备设备类型:块设备:block,存取单位“块”,......
  • 寒假第七天
    一、数据结构JavaScript的数据结构包括:标识符、关键字、常量、变量等。1、标识符标识符,说白了,就是一个名字。在JavaScript中,变量和函数等都需要定义一个名字,这个名字就可以称为“标识符”。JavaScript语言中标识符最重要的3点就是:(1)第一个字符必须是字母、下划线(_)或美元符号这3......
  • 第七天
    多态,强制类型转换,方法的重写packageDuoTai;publicclassApplication{publicstaticvoidmain(String[]args){//newStudent();//newPerson();//一个数据的实际类型是确定的。Studentstudent=newStudent();Person......
  • 代码随想录算法训练营第七天| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四
    454.四数相加II 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i,j,k,l) 能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0题目链接:454.四数相加II-力扣(LeetCode)思路:当遇到需要确认元素是......
  • PHP学习第七天:框架开发与自动化工具
    在PHP学习的第七天,我深入了解了框架开发和自动化工具的使用。早上,我学习了如何使用PHP框架来加速Web应用程序的开发。PHP框架提供了一套预先构建的组件和工具,可以简化开发过程并提高应用程序的可靠性。我学习了Laravel和Symfony这两个流行的PHP框架,并了解了它们的核心概念和特性。......
  • [代码随想录] 第七天
    344.翻转字符串[https://leetcode.cn/problems/reverse-string/submissions/496111203/]思路:类似于原地翻转数组,左指针右指针向中间靠拢,交换对应元素。classSolution{publicvoidreverseString(char[]s){intleft=0;intright=s.length-1;......
  • 第七天:磁盘存储、分区和文件系统
    一、磁盘结构1、设备放在/dev文件下面硬盘:sdanvme虚拟:xvdvdmknod:创建设备2、硬盘类型接口类型:IDESCSISATASASUSBM.2机械硬盘和固态硬盘3、open(),read(),write(),close()文件操作二、分区类型设备分区、创建文件系统、挂载新的文件系......