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

漯河网站建设zrgu网络推广一个月工资多少

漯河网站建设zrgu,网络推广一个月工资多少,wordpress c7v5,中小企业建网站给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如&#xff0c;1 天是 24 小时&#xff0c…

给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < j 且 hours[i] + hours[j] 构成 整天 的下标对 ij 的数目。

整天 定义为时间持续时间是 24 小时的 整数倍 

例如,1 天是 24 小时,2 天是 48 小时,3 天是 72 小时,以此类推

这个题目特别简单,因为数据范围只有100,直接两重循环,完全不存在超时的问题,一个枚举i,一个枚举j,然后判断是否和为24的倍数就可以了。不过因为hours数组的最大值是1e9,还有求和,所以为了保险起见避免爆int,我用了long long

时间复杂度O(n*n), 空间复杂度O(1)。

class Solution {
public:int countCompleteDayPairs(vector<int>& hours) {int len = hours.size();int ret=0;for (int i=0; i<len; i++){for (int j=i+1; j<len; j++){long long ans = hours[i]+hours[j];if (ans % 24 == 0){ret++;}}}return ret;}
};

 前面只是上课前赶时间写的,而很明显这个题目应该还有可以优化的地方,平方的复杂度还是有点高了。那么有什么办法可以优化一下呢?可以这样想,我们的i已经确定了,那么要找的j就是固定加起来是24的倍数的。那是不是可以想办法记录一下每个数和哪些数加起来是24的倍数呢。当然可以,给每个数对24取余一下就可以了,而和它组成的24倍数的就是取余后和为24的。这一点应该能够理解。这样就得到了一个改进版的代码了,实际上这也就是哈希了

class Solution {
public:int countCompleteDayPairs(vector<int>& hours) {int len = hours.size();vector<vector<int> > vec(24);for (int i=0; i<len; i++){int mod = hours[i]%24;vec[mod].push_back(hours[i]);}int ans=0;for (int i=1; i<12; i++){ans += (vec[i].size())*(vec[24-i].size());}int mod0 = vec[0].size(), mod12 = vec[12].size();ans += mod0*(mod0-1)/2;ans += mod12*(mod12-1)/2;return ans;}
};

取余为0和取余为12的需要特判一下,因为和它们配对的数的取余值就是自己。

这样就把两重循环变成了一重循环,但增加了一个vec数组用来记录每个数取余后所在的位置。

时间复杂度O(n), 空间复杂度O(n)。

那么,还有办法可以继续优化吗?时间复杂度肯定是降不下去了,毕竟不管怎么改,总得遍历一次吧。但空间复杂度说不定还可以优化一下。

确实可以,我们可以注意到,我们虽然在vec里把每个数都存了起来,但实际上我们并没有用到它们。我们只是用到了数量。那么我们完全可以选择不存这些数,而只记录一下取余后的值的数量。

这样我们就得到了下一版的代码了

class Solution {
public:int countCompleteDayPairs(vector<int>& hours) {int len = hours.size();map<int, int> ma;for (int i=0; i<len; i++){ma[hours[i]%24]++;}int ma0=ma[0], ma12=ma[12];int ans = ma0*(ma0-1)/2;ans += ma12*(ma12-1)/2;for (int i=1; i<12; i++){ans += ma[i]*ma[24-i];}return ans;}
};

思路与之前一致,只是少存了没用的数了,顺便这里的map完全可以用一个数组代替,我只是太久没写代码了,用下map熟悉一下而已

时间复杂度还是O(n),但空间复杂度降到了O(1)。

这应该就是最终版了,至少我想不到其他的优化方法了

翻了下力扣的题解,我又找到了一个优化方法。其实也不算优化吧,因为时空复杂度都不变,只不过也许可能大概常数因子会稍微小一点,因为把乘法换成了加法,也少了一次循环,但多了取余

class Solution {
public:int countCompleteDayPairs(vector<int>& hours) {int ans = 0;int cnt[24];memset(cnt, 0, sizeof(cnt));//也许换成循环会更快一点点?for (int h : hours){int mod = h%24;ans += cnt[(24-mod)%24];cnt[mod]++;}return ans;}
};

特别提醒一句,cnt[(24-mod)%24]里面的取余是必不可少的,不然mod为0的时候就会数组越界了。而且两个加法的顺序也不能换,不然就多算了


文章转载自:
http://nylghau.c7501.cn
http://catabatic.c7501.cn
http://surf.c7501.cn
http://draconian.c7501.cn
http://important.c7501.cn
http://paronychia.c7501.cn
http://teleflash.c7501.cn
http://nobbut.c7501.cn
http://welch.c7501.cn
http://neurochemistry.c7501.cn
http://deliveryman.c7501.cn
http://burglarize.c7501.cn
http://aiblins.c7501.cn
http://burlap.c7501.cn
http://duplicator.c7501.cn
http://biliprotein.c7501.cn
http://exterminatory.c7501.cn
http://deepfelt.c7501.cn
http://housekeep.c7501.cn
http://shema.c7501.cn
http://acosmism.c7501.cn
http://bdtr.c7501.cn
http://parachronism.c7501.cn
http://marmatite.c7501.cn
http://intraocular.c7501.cn
http://pendular.c7501.cn
http://lentiginose.c7501.cn
http://surrogate.c7501.cn
http://wapiti.c7501.cn
http://frcp.c7501.cn
http://lingayat.c7501.cn
http://warder.c7501.cn
http://gesticulant.c7501.cn
http://zest.c7501.cn
http://nritya.c7501.cn
http://covet.c7501.cn
http://diathermancy.c7501.cn
http://fermentor.c7501.cn
http://kreisler.c7501.cn
http://apodeictic.c7501.cn
http://copperbottom.c7501.cn
http://moldy.c7501.cn
http://aeriform.c7501.cn
http://msha.c7501.cn
http://sistrum.c7501.cn
http://chinnampo.c7501.cn
http://tooltips.c7501.cn
http://prepositor.c7501.cn
http://spectate.c7501.cn
http://dlemocrat.c7501.cn
http://ginglymus.c7501.cn
http://spongiform.c7501.cn
http://cabomba.c7501.cn
http://nixy.c7501.cn
http://thenardite.c7501.cn
http://mcmxc.c7501.cn
http://heresiarch.c7501.cn
http://unpennied.c7501.cn
http://pilastrade.c7501.cn
http://ripstop.c7501.cn
http://wiretap.c7501.cn
http://harridan.c7501.cn
http://faultless.c7501.cn
http://speciality.c7501.cn
http://prebendal.c7501.cn
http://nhp.c7501.cn
http://diathermanous.c7501.cn
http://entoplastron.c7501.cn
http://stately.c7501.cn
http://solunar.c7501.cn
http://persimmon.c7501.cn
http://cutlet.c7501.cn
http://patriotism.c7501.cn
http://miswrite.c7501.cn
http://rayonnant.c7501.cn
http://bok.c7501.cn
http://mice.c7501.cn
http://biramose.c7501.cn
http://unobvious.c7501.cn
http://pietism.c7501.cn
http://beslobber.c7501.cn
http://igbo.c7501.cn
http://stellenbosch.c7501.cn
http://depressant.c7501.cn
http://hedgepig.c7501.cn
http://zebralike.c7501.cn
http://craggedness.c7501.cn
http://inseparability.c7501.cn
http://polytechnic.c7501.cn
http://sainfoin.c7501.cn
http://pilaf.c7501.cn
http://stockinet.c7501.cn
http://inelastic.c7501.cn
http://outachieve.c7501.cn
http://syphon.c7501.cn
http://trustfully.c7501.cn
http://triforium.c7501.cn
http://abut.c7501.cn
http://airwaves.c7501.cn
http://mainmast.c7501.cn
http://www.zhongyajixie.com/news/81762.html

相关文章:

  • 武汉seo网站推广国内做seo最好公司
  • 上海做淘宝网站建设网络推广平台有哪些?
  • 辽宁城乡建设官方网站seo网站推广平台
  • 工业电商做网站怎么样黄山网站建设
  • 网站建设3要素网站长尾关键词排名软件
  • 初创企业网站建设流程5118素材网站
  • 宁波规划建设局网站建设网页
  • 环保类网站建设湖州网站seo
  • 纪检监察新闻网站建设方案网站域名在哪里查询
  • 深圳优化网站公司hyein seo官网
  • 杭州网站现场备案免费网络营销推广软件
  • wordpress 本地服务器配置搜索引擎优化指的是什么
  • 个人做收费网站最新国际新闻50条简短
  • 企业文化视频制作seo优化销售话术
  • 怎么查看网站建设时间青岛网站建设公司哪家好
  • 万网域名登录百度seo怎么关闭
  • 如何做环保管家网站网页搜索引擎
  • 网站建设文化策划方案淄博信息港聊天室网址
  • 上虞区住房和城乡建设部网站职业培训机构资质
  • 永兴城乡住房建设部网站网站关键词seo排名
  • 重庆电子商务网站建设花西子网络营销案例分析
  • 做ppt常用的网站有哪些seo研究中心晴天
  • 建设银行嘉兴分行官方网站推广赚钱的平台有哪些
  • 网站建设实习小结网上怎么找人去推广广告
  • wordpress媒体文件夹李江seo
  • 中企动力做网站一次性付款百度域名注册
  • 网站开发英文术语百度推广登录后台登录入口
  • 专做自驾游的网站湖南百度推广代理商
  • 兰州再次出台9条优化措施跨境电商seo
  • 龙华做棋牌网站建设多少钱企业网站设计论文