草庐IT

秋招算法备战第6天 | 哈希表理论基础、242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

哈希表理论基础一般哈希表都是用来快速判断一个元素是否出现集合里。当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构:数组set(集合)map(映射)当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。242.有效的字母异位词-力扣(LeetCode)直接调库ACfromcollectionsimportCounterclassSolution:defisAnagram(self,s:str,t:str)->bool:returnCounter(s)==

代码随想录算法训练营第6天 | 哈希表理论基础, 242.有效字母异位词 anagram, 349. 两数组交集, 202. 快乐数, 1.两数之和

哈希知识一些记录:虽然std::set、std::multiset的底层实现是红黑树,不是哈希表,std::set、std::multiset使用红黑树来索引和存储,不过给我们的使用方式,还是哈希法的使用方式,即key和value。所以使用这些数据结构来解决映射问题的方法,我们依然称之为哈希法。map也是一样的道理。哈希法也是牺牲了空间换时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。做面试题目时遇到需判断一个元素是否出现过的场景也应该第一时间想到哈希法#242anagrammultiset和unordered_map都试了下,看代码随想录答案用的array,

C语言-求矩阵的对角线之和

其实这种题往往规律性很强,用笔画一画相信都能发现突破口,下面我就讲最简单的方法去求解。先画图 无非两种情况,n*n,n要么是双数,即对2求余等于0,要么是单数,对2求余不为0;单数和双数的区别在于,单数的情况下两条对角线会有一个交点,当我们计算了一条对角线的总和,另外一条对角线就不需要重复去计算。在此基础,单双数公用一个逻辑,只是单数比较特别一点,需要减两条对角线的交点,也就是这里的6。下面看整体代码。#includeintmain(){intn=0,i=0,j=0;intsum1=0,sum2=0,sum=0;printf("请输入数组的行列数,(n*n只需n)\n");scanf("%d"

算法刷题Day 17 平衡二叉树+二叉树的所有路径+左叶子之和

Day17二叉树计算左右两棵子树的高度,如果有一个高度是-1(有一棵子树不平衡),直接返回-1,否则计算高度差,判断是否不平衡110.平衡二叉树classSolution{inthelper(TreeNode*root){if(!root)return0;intleftDepth=helper(root->left);intrightDepth=helper(root->right);if(leftDepth==-1||rightDepth==-1)return-1;elseif(abs(leftDepth-rightDepth)>1){return-1;}else{returnmax(lef

诚之和:继华为鸿蒙之后,电脑系统迎来更新,支持海量安卓应用

近年来,我国在科技领域取得了丰硕成果,各个领域都有巨大突破,但在某些特定领域中,我们依然遭受着卡脖子的困境,特别是芯片和系统这两大核心板块。首先是芯片领域,无论是电脑芯片还是手机芯片,我们都绕不过美国的专横,电脑用的是Intel和AMD,手机用的是高通骁龙芯片,国内好不容易出了个华为麒麟芯片,结果却因美国规则的修改而终止了。其次是系统领域,和芯片领域一样,我们的电脑运行的是美国Windows系统,手机则是运行的美国安卓系统,也就是说,我们的电脑和手机,其核心部件都来源于美国企业。看到一个有趣的回答,一个在国际上实力并不突出的国家可以不研发芯片和系统,因为美国不会制裁你,毕竟美国也想赚钱点。但如

秋招算法备战第7天 | 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和、总结

454.四数相加II-力扣(Leetcode)乍一看没想到比较好的思路,然后大概扫了下解答,开始两两拆分用set去做,但是这种方法没法考虑不同组合的和一样的情况,又改成了dict做,代码如下classSolution:deffourSumCount(self,nums1:List[int],nums2:List[int],nums3:List[int],nums4:List[int])->int:sum_12_dict={}foriinrange(len(nums1)):forjinrange(len(nums2)):ifnums1[i]+nums2[j]notinsum_12_dict:su

C语言编程练习:随机生成一个5*5不同元素的矩阵,编程实现:(1)求两条对角线上的各元素之和;(2)求两条对角线上行、列下标均为偶数的各元素之和。

题目:随机生成一个5*5不同元素的矩阵,编程实现:(1)求两条对角线上的各元素之和;(2)求两条对角线上行、列下标均为偶数的各元素之和。输出格式:5*5的不同元素矩阵输入样例:代码如下:#include#include//随机数头文件#include//系统时间头文件intmain(){ inti,j,sum1,sum2; sum1=sum2=0; constintn1=5,n2=5; intcnt[n1][n2]; srand(time(NULL));//循环外生成25个不同数,循环内生成25个相同数 for(i=0;i

【LeetCode: 167. 两数之和 II - 输入有序数组 | 双指针专题 】

🚀算法题🚀🌲算法刷题专栏|面试必备算法|面试高频算法🍀🌲越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨🌲作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎🌲恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻🌲人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯🚀算法题🚀🍔目录🚩题目链接⛲题目描述🌟求解思路&实现代码&运行结果⚡双指针🥦求解思路🥦实现代码🥦运行结果💬共勉🚩题目链接167.两数之和II-输入有序数组⛲题目描述给你一个下标从1开始的整数数组number

代码随想录算法训练营第7天 | 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

#454四数相加II M不会,好难,直接看思路+自己实现30min,hash一般有思路了实现都挺快 !这个和后面同ary内三数四数之和的区别是,是在4个vec内,不用去重分成a+bc+d O(n^4)->O(n^2)intfourSumCount(vector&nums1,vector&nums2,vector&nums3,vector&nums4){unordered_mapabmap;intcnt=0;for(auto&ele1:nums1){for(auto&ele2:nums2){abmap[ele1+ele2]+=1;}}for(auto&ele3:nums3){for(auto&e

Java开发 - Canal进阶之和Redis的数据同步

前言Canal在数据同步中是非常常见的,一般我们会用它来做MySQL和Redis之间、MySQL和ES之间的数据同步,否则就是手动通过代码进行同步,造成代码耦合度高的问题,这并不是我们愿意看见的,今天这篇博客博主将给大家演示Canal的数据同步做法,敲小黑板了啊,实战中基本也是这么做的,有需要的小伙伴可以仔细研究。前文回顾前文中,我们讲解了Canal的基本用法,用来监听数据库的变化,对数据库和Canal的一些基础配置都在这里:Java开发-Canal的基本用法如果你对Canal还不了解,那么你有必要先去看这篇博客,再来学习这里的实战内容。 这很有必要,当然如果你对MySQL主从也不了解的话,那