zoukankan      html  css  js  c++  java
  • leetcode每日刷题计划--day55

    Num 1

    好久没有做题了qwq

    先把旧的题有优化算法的看一下

    新的 stl map 简单总结 

    暴力(二重循环)最开始的算法

    (ps map的搜索是红黑树,肯定比线性走一遍快的)

    优化 把所有的数对应的存在map里面(map[元素]=下标) 然后寻找map.count(target-now) 

    那么这种情况下,map本身的速度快整体变快。

    二重优化 在实际过程中,我们发现,并不需要全遍历,如果每一个元素只考虑他们前面的元素,那么后面的元素早晚会考虑到他,这样不会漏掉结果

    因此我们可以边查边存,在当前元素查找结束以后将其放入map即可

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            vector<int>vt;
            map<int,int>mp;
            //mp[nums[0]]=0;
            for(int i=0;i<nums.size();i++)
            {
                int a=target-nums[i];
                if(mp.count(a))
                {
                    vt.push_back(mp[a]);
                    vt.push_back(i);
                    return vt;
                }
                mp[nums[i]]=i;
            }
            return vt;
        }
    };
    View Code

    注意一下写的时候出现了奇怪的报错现象,这个是map<int,int>mp 后面都用mp,手误写成map[nums[i]],出来的报错结果不太容易发现。。。

    map['a']=1 a是key

    map.count(key) 查找key出现的次数 ,(因为map set里面不允许重复,所以如果为1就是存在)

    map.find(key) 这个返回的位置 用迭代器it=map.find(x),如果没出现过,返回为map.end()

    map有新的键值对直接 mp['a']=1就行了,另外相同key会覆盖。(如果再写mp['a']=2) 以后查就变成2了

    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    NGINX高并发配置
    一致性哈希算法——PHP实现代码
    TCP三次握手详解
    一致性哈希算法——转载来自张洋
    ngx_http_upstream_keepalive
    高情商人的十一种表现
    Nginx中的upstream轮询机制介绍
    主从读写分离----mysql-proxy0.8.5安装与配置
    分布式事务XA
    微信小程序API
  • 原文地址:https://www.cnblogs.com/tingxilin/p/11883019.html
Copyright © 2011-2022 走看看