242.有效的字母异位词
文档和视频讲解:代码随想录(programmercarl.com)
状态:ac
用时:0.5h
思路:用一个不重复的map存储字符串s的字母及其出现次数,接着遍历字符串t,对每次出现在map中的字符的次数减一。最后遍历map中字符的次数,如果有一个不等于0,则表示s和t不是字母异位词。
代码:
349. 两个数组的交集
文档和视频讲解:代码随想录(programmercarl.com)
状态:ac
用时:0.5h
思路:一个set存放第一个数组的元素,遍历第二个数组,元素如果出现在set中就放进存放结果的set中,最后把结果set的元素放入一个vector中。
代码:
202. 快乐数
文档和视频讲解:代码随想录(programmercarl.com)
状态:未ac
用时:1h
思路:如果n是快乐数,则最后循环到各位置数字平方和sum等于1,而如果不是快乐数,则会一直循环。无限循环下sum不是越来越大,那样会无限大,而应该是到达一个sum后开始循环。所以只要用一个set来存储每一个sum,当开始出现循环后则表示该数不是快乐数。
代码:
1. 两数之和
文档和视频讲解:代码随想录(programmercarl.com)
状态:未ac
用时:1h
思路:暴力解法是用两个循环依次访问各个元素。而非暴力解法是用一个map存放数组中数字和它的位置,当遍历到一个元素的时候,如果它和target之间的差出现在map中,表示和为target的两个数字。
代码:
注:这里面只要一个循环就可以了,比如有num1+num2 = target,num1 < num2,如果遍历到num1,由于还没到num2,map中肯定没有num2,则num1会被存入map,但是当后面遍历到num2,num1在map中,则还是会找到满足条件的数字,因此只需要一个循环,而不用一个循环先把所有数字放入map,再循环一次找每个数字和target的差是否在map中。