简单算法题
分享力扣上的一些简单算法题
哥们儿哥们儿学前端吗
这个作者很懒,什么都没留下…
展开
-
用js实现两数之和(哈希表)
我们可以建立一张哈希表,用来存储已经遍历过的值以及它对应的下标,这样可以避免重复遍历。通过for循环遍历数组的每一项时,先去哈希表里面找一找是否存在某个值X使得 X+nums[i] == target,因为题目中提到只会出现一个答案,所以若存在这个值,直接将其下标返回即可,若哈希表中不存在,则将该值和对应的下标存入哈希表中。若循环结束并没有找到这个值,则返回空数组。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值target 的那两个整数,并返回它们的数组下标。原创 2022-10-22 20:18:28 · 276 阅读 · 0 评论 -
用js实现整数转罗马数字(贪心算法)
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II。27 写做 XXVII, 即为 XX + V + II。排列组合可得:罗马数字一共可以有13种情况,按从大到小排列,依次得出每个字符所出现的个数,在相加就可得到答案。转载 2022-10-22 20:00:54 · 586 阅读 · 0 评论 -
用javascript实现罗马数字转整数
联系一下实际,该解法是基于对罗马数字的理解上进行深入的,从后往前遍历,如果该字符为‘I’,而res>=5,那么说明,在‘I’之前一定有‘V’,所以‘I’取-1,所以‘IV’ = 5-1 =4,同理‘IX’ = 10-1=9。按照正常的思路,我们会选择从前往后遍历,通过判断前后两个字符之间的大小关系,如果前面的字符代表的数字小于后面的字符所代表的数字,则前面的数字取反。这里我们选择从后往前遍历,可以联想以下我们平时接触到的各类罗马数字,这是一道力扣上的简单算法题目。原创 2022-10-21 18:51:52 · 400 阅读 · 0 评论