三:哈希map day6 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

今日任务 ● 哈希表理论基础 
● 242.有效的字母异位词 
● 349. 两个数组的交集 
● 202. 快乐数
● 1. 两数之和   

今日任务 

  •  242.有效的字母异位词 

  • 题目
        大型概括:map 的使用
  •     1.题目描述-->思路:
  •                 给出两个string s,t;  各自对应的字母数量要一致
  • 思路:     
  •              利用一个map,s对map++;t对map--;

                 遍历map的时候,有非0的,就是假;
  •  2.输入 返回值:bool 01
    • 3.边界情况:风险:必须二者长度相等,否则,直接返回假!
  • class Solution {
    public:bool isAnagram(string s, string t) {map<char,int>Mymap;if (s.length() != t.length())return false;for(int i=0;i<s.size();i++){char a= s[i];char b = t[i];Mymap[a]++;Mymap[b]--;}for(int i=0;i<s.size();i++){if( Mymap[s[i]]!=0)return false;    }return 1;}

349. 两个数组的交集 

题目
    大型概括:辅助map +vector(返回值)

方案一:(错误代码没写)

nums1 贡献为 ++

nums2 贡献为   --

最后用nums1为🗡值,遍历到  <=0的,一律添加到vector

没考虑nums2的新元素加入map,也会造成--!!!;

除非只拿nums1作为🗡值去遍历。

方案二:标记法

                nums1 进入map,将数值设置为 2;

              nums2进入map,先检查这里的🗡值是否为2,是的话,改标记为1


    1.题目描述-->思路:

    2.输入 返回值:

    3.边界情况:

    4.时空复杂度:

    5.进一步优化:

利用迭代器! 

#include <vector>
#include <map>class Solution {
public:std::vector<int> intersection(std::vector<int>& nums1, std::vector<int>& nums2) {std::map<int, int> Mymap;std::vector<int> qq;// 标记 nums1 中的元素for (int num : nums1) {Mymap[num] = 2;}// 找出同时在 nums1 和 nums2 中的元素,并标记为 1for (int num : nums2) {if (Mymap[num] == 2) {Mymap[num] = 1;}}// 收集交集结果for (auto& pair : Mymap) {if (pair.second == 1) {qq.push_back(pair.first);}}return qq;}
};

 202. 快乐数 (个人方法,待验证)

题目
    大型概括:方法

  想到了一个证明方法,即缩小问题的规模,问题描述的是2^31-1范围内的数字,其实第一步的计算中(代码中的each),算得最大的数字是 760(Norigin=2XXXXXXX,但是取1999999.。。),第二步的each最大值(由第一步的假设699得到)198。若要成为快乐数,必须要在某一步的计算中,成为1 10 100(不能为1000,因为第一步得到的最大值只有760)。     将原来的题目改成:1-1000(实际为1-760)内的数字 求全部的快乐数。 具体的证明:先求出1-760内全部的快乐数,再测试7步内能得到这样的结果么? 其实count=7是我 几个数字验证几下出来的,5 6 7; 只要能涵盖1-1000的数字的验证即可。


    1.题目描述-->思路:

    2.输入 返回值:

    3.边界情况:

    4.时空复杂度:

    5.进一步优化:

超时代码:1.虽然考虑无限循环,但是要设置步数

                   思路:内层循环:让每个项都化成 平方累加

                                外层循环,让each = sum,sum=0 进入循环

                                退出:each ==1 

class Solution {
public:bool isHappy(int n) {int sum =0;int each =n;int count=0;while(each!=1){if(count==5)return false;while(each){int a = each%10;each = each/10;sum+=a*a;count++;}each = sum;sum=0;}return 1;}
};

优化方法:

class Solution {
public:bool isHappy(int n) {int sum;int each = n;int count = 0;while (each != 1 && count < 10) { // 修改为 count < 5sum = 0; // 重置 sumwhile (each) {int a = each % 10;each = each / 10;sum += a * a;}each = sum;count++;}return each == 1; // 如果 each == 1,返回 true}
};

 

1. 两数之和   (暴力法)

题目
    大型概括:方法

    1.题目描述-->思路:

    2.输入 返回值:

    3.边界情况:

    4.时空复杂度:

    5.进一步优化:纯暴力法,双for
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int size = nums.size();vector<int>a;           //辅助for(int i=0;i<size-1;i++){for(int j=1+i;j<size;j++){if(nums[i]+nums[j]==target){a.push_back(i);a.push_back(j);return a;}}}return a;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/704956.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回顾相关性:平衡关键字和语义搜索

作者&#xff1a;来自 Elastic Kathleen DeRusso 本博客分享了最近的 Haystack 2024 演讲 “回顾相关性&#xff1a;平衡关键字和语义搜索的经验教训” 中的一些要点。 概述 相关性调整是用户搜索体验的重要组成部分。 语义搜索尤其面临着几个挑战&#xff0c;其中许多挑战是…

如何向全国各大新闻网站投稿?

在信息爆炸的时代,新闻媒体的投稿工作对于单位的信息宣传员来说,既是一项重要的职责,也是一项充满挑战的任务。作为一名信息宣传员,我负责着单位的对外信息宣传投稿工作,每个月都需要在各大媒体上发表文章,以展示单位的成果和风采。 然而,刚开始的投稿之路并不顺畅。我习惯性地…

暴力数据结构之二叉树(堆的相关知识)

1. 堆的基本了解 堆&#xff08;heap&#xff09;是计算机科学中一种特殊的数据结构&#xff0c;通常被视为一个完全二叉树&#xff0c;并且可以用数组来存储。堆的主要应用是在一组变化频繁&#xff08;增删查改的频率较高&#xff09;的数据集中查找最值。堆分为大根堆和小根…

Windows快捷命令

Windows 操作系统提供了大量的快捷命令&#xff0c;用于快速访问系统设置和管理工具。这些命令在各个版本的 Windows 中基本都适用&#xff0c;可以帮助用户快速进入各类管理工具&#xff0c;方便系统的配置和管理。如果你需要使用这些工具&#xff0c;只需按 Win R 键&#x…

【python量化交易】—— Alpha选股策略 - Qteasy自定义交易策略【附源码】

使用qteasy创建并回测Alpha选股交易策略 使用qteasy创建并回测Alpha选股交易策略策略思想第一种自定义策略设置方法&#xff0c;使用持仓数据和选股数据直接生成比例交易信号PS信号&#xff1a;第二种自定义策略设置方法&#xff0c;使用PT交易信号设置持仓目标&#xff1a;第三…

家庭主妇,宝妈在家能做什么副业有收入?

作为家庭主妇和宝妈&#xff0c;您可以考虑以下副业来增加收入 1. 在家兼职 您可以在家里做一些兼职工作&#xff0c;如数据输入、文案撰写、翻译、客服等。可以通过在线平台或社交媒体寻找这些机会。 2. 做任务 目前网上最流行的就是做任务&#xff0c;因为简单无门槛&…

图文教程 | 2024年最新VSCode下载和安装教程c/c++环境配置,json文件详解,实用插件分享

前言 &#x1f4e2;博客主页&#xff1a;程序源⠀-CSDN博客 &#x1f4e2;欢迎点赞&#x1f44d;收藏⭐留言&#x1f4dd;如有错误敬请指正&#xff01; 由于重装电脑&#xff0c;需要重新安装VsCode&#xff0c;记录安装配置过程。 一、VSCode下载 官网地址&#xff1a; Vis…

Vue3+ts(day06:路由)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】&#xff0c;记录一下学习笔记&#xff0c;用于自己复盘&#xff0c;有需要学…

云曦实验室期中考核题

Web_SINGIN 解题&#xff1a; 点击打开环境&#xff0c;得 查看源代码&#xff0c;得 点开下面的超链接&#xff0c;得 看到一串base64编码&#xff0c;解码得flag 简简单单的文件上传 解题&#xff1a; 点击打开环境&#xff0c;得 可以看出这是一道文件上传的题目&#x…

三大平台直播视频下载保存方法

终于解决了视频号下载的问题&#xff0c;2024年5月15日亲测可用。 而且免费。 教程第二部分&#xff0c;有本地电脑无法下载的解决方案。 第一部分&#xff1a;使用教程&#xff08;正常&#xff09; 第1步&#xff1a;下载安装包 下载迅雷网盘搜索&#xff1a;大海福利合集…

C++语法|对象的浅拷贝和深拷贝

背景&#xff1a; 我们手写一个顺序栈&#xff0c;展开接下来的实验&#xff1a; ⭐️ this指针指向的是类在内存中的起始位置 class SeqStack { public:SqeStack(int size 10) {cout << this << "SeqStack()" << endl;pstack_ new int[size_];t…

Blender 导入资源包的例子

先到清华源下载资源包&#xff1a; Index of /blender/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 具体地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/blender/demo/asset-bundles/human-base-meshes/human-base-meshes-bundle-v1.1.0.zip 解压/hum…