leetcode练习
1
问题描述
给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
1 Given nums = [2, 7, 11, 15], target = 9, 2 3 Because nums[0] + nums[1] = 2 + 7 = 9, 4 return [0, 1].
C++代码如下
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) 4 { 5 vector<int> vi; 6 int size = nums.size(); 7 for(int i=0;i<size;i++) 8 { 9 for(int j=i+1;j<size;j++) 10 { 11 if(nums[i]+nums[j] == target) 12 { 13 vi.push_back(i); 14 vi.push_back(j); 15 return vi; 16 } 17 } 18 } 19 return vi; 20 } 21 };
class Solution { public:vector<int> twoSum(vector<int>& nums, int target){unordered_map<int, int> m;vector<int> vi;for (int i=0;i<nums.size();i++){m[nums[i]] = i;}for (int i=0;i<nums.size();i++){int other_number = target - nums[i];if (m.count(other_number) && m[other_number]!=i){vi.push_back(i);vi.push_back(m[other_number]);break;}}return vi;} };
class Solution { public:vector<int> twoSum(vector<int>& nums, int target){unordered_map<int, int> numer_to_id;for (int i=0;i<nums.size();i++){if (numer_to_id.count(target-nums[i])){return{ i,numer_to_id[target - nums[i]] };}numer_to_id[nums[i]] = i;}return{};} };
python代码如下:
1 class Solution(object): 2 def twoSum(self, nums, target): 3 """ 4 :type nums: List[int] 5 :type target: int 6 :rtype: List[int] 7 """ 8 size = len(nums) 9 i = 0 10 for i in range(size): 11 for j in range(i+1,size): 12 if nums[i]+nums[j] == target: 13 return [i,j]
注:
range函数用法:
range(start, stop[, step])
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
转载于:https://www.cnblogs.com/LuckCoder/p/10252498.html
leetcode练习相关推荐
- leetcode 5. Longest Palindromic Substring 字符串中的最长回文数 逐步从O(n^2)优化至线性时间
题目 解析 思路一 暴力解法 思路二 指针+最大长度 思路3 由中间至两边找回数 思路4 Manacher's algorithm 线性时间 参考文档 题目 链接 给定一个字符串 s,找到 s 中最长 ...
- LeetCode 10. Regular Expression Matching python特性、动态规划、递归
前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...
- leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法
题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...
- leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法
题目链接 根据我们之前介绍的滑动窗口法的解法: 滑动窗口法详解 leetcode 438. Find All Anagrams in a String 滑动窗口法 这题,我们不难解决,使用之前的模板. ...
- leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素
leetcode:26 对数组元素进行去重,使得原数组重复元素最多保留1个 限制: 我们不可以额外分配数组,必须保持空间复杂度为O(1) 这个并不难实现: class Solution(object) ...
- LeetCode简单题之二进制表示中质数个计算置位
题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...
- LeetCode简单题之删除字符使字符串变好
题目 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后的字符串.题目数据保证答案总 ...
- LeetCode简单题之找出两数组的不同
题目 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,请你返回一个长度为 2 的列表 answer ,其中: answer[0] 是 nums1 中所有 不 存在于 nums2 中的 ...
- LeetCode中等题之区域和检索 - 数组可修改
题目 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nu ...
- LeetCode简单题之整理字符串
题目 给你一个由大小写英文字母组成的字符串 s . 一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件: 若 s ...
最新文章
- http://weibo.com/cnblogs
- macOS完全卸载Android Studio方法
- 使用Microsoft Media Service实现网络影音多媒体应用系列第三篇---技术要点
- 有原创保护能力的公众帐号可申请页面模版功能和图文消息正文插入历史群发链接...
- 1250. Sea Burial
- ASP.NET MVC:WebViewPage.cs
- 数据结构和算法——八种常用的排序算法------归并排序
- 启动vpn报网络扩展错误(问题篇)
- php 盗链新浪图片_php实现博客,论坛图片防盗链的方法
- 京瓷2010打印机苹果电脑能用吗_MacOS(苹果电脑苹果系统)连接京瓷300i 打印机...
- 【踩坑专栏】主机文件复制到虚拟机
- MySQL计算天数差
- RAID(独立磁盘冗余阵列)
- Amdahl定律及木桶原理
- 递归判断一个数是不是回文数
- G笔试题-2012年9月25日
- python贝叶斯模型_【机器学习速成宝典】模型篇05朴素贝叶斯【Naive Bayes】(Python版)...
- 发那科机器人示教盒复位键是哪个_发那科示教器维修 大连发那科机器人伺服放大器维修 伺服电机维修...
- 《黑客与画家》--2黑客与画家
- 物流APP开发意义(专业定制)