我又回来了,回来打卡LeetCode,第一天抄了,第二天水了,隔了大半个月我来搞第三天的卡,唉,随缘努力,工作你加加油,找找我啊。
今天做第一题:1. 两数之和
看着标得简单,我不知如何下手,脑子里只有暴力穷举,哭了,我真的是个研究生吗?大学四年学没了
1、自己解题,直接粗暴求解
循环套循环,确定一个数然后另一个数不断相加,判断是否等于target,若等于则结束循环。毫无技巧可言啊(这里用了C++)
class Solution { public: vectortwoSum(vector & nums, int target) { vector index(2); int l = nums.size(); for(int i=0; i 下面是这道题当时的提交结果
2、在解答区看别人解题
用到了哈希表,边循环边找,真聪明,我怎么就想不到呢,慢慢来吧,题做多了背也该背会了吧,这里用了Java编码。在一遍循环的过程中,同时记录了每个元素的下标和为达到目标值需要的另一个元素,一遍循环就可以完成,(微软输入法这个牛的表情包着实丑了点)。
class Solution { public int[] twoSum(int[] nums, int target) { int[] index=new int[2]; HashMaphash = new HashMap (); for(int i=0; i 以下是提交结果,性能明显提升了好多啊,不过有一说一Java真的好耗内存啊(之前从来没感觉这么明显过)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)