LeetCode笔记
Leetcode笔记
- Two Sum
- C(初始版)
- C++版1
- C++版2
- 笔记
- Add Two Numbers
- 初始版本
- C
Two Sum
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:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
C(初始版)
#include <iostream>
int main(int argc, const char * argv[]) {int nums[4]={2,7,11,15};int target;scanf("%d",&target);for(int i=0;i<4;i++){for(int j=i+1;j<4;j++){if(nums[i]+nums[j]==target){printf("%d %d",i,j);return 0;}}}return 0;
}
C++版1
链接: [link]https://www.cnblogs.com/grandyang/p/4130379.html
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> m;vector<int> res;for (int i = 0; i < nums.size(); ++i) {m[nums[i]] = i;}for (int i = 0; i < nums.size(); ++i) {int t = target - nums[i];if (m.count(t) && m[t] != i) {res.push_back(i);res.push_back(m[t]);break;}}return res;}
};
C++版2
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> m;for (int i = 0; i < nums.size(); ++i) {if (m.count(target - nums[i])) {return {i, m[target - nums[i]]};}m[nums[i]] = i;}return {};}
};
笔记
vector count:返回元素值为target的元素个数。
Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807
初始版本
将两个链表的对应项相加,再从头节点遍历新链表(若该节点val>9,则-10,且next的val+1)
代码暂未修改
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/class Solution {public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode now1=l1,now2=l2;ListNode *newlist,pnode;pnode=newlist;while(now1!=NULL && now2!=NULL){pnode.val=now1.val+now2.val;now1=now1->next;now2=now2->next;pnode=pnode->next;}if(now1==NULL){pnode->next=now2;}else{pnode->next=now1;}pnode=newlist;while(pnode!=NULL){if(pnode>9){pnode.val-=10;if(pnode->next!=NULL){pnode->next.val+=1;}else if(pnode->next==NULL){pnode->next.val=1;}}}return newlist;}};
C
链接:https://www.cnblogs.com/JeroZeng/p/4668784.html
比较过程中利用carry实时进位,相较于初始版本中再次遍历链表,节省了时间。
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {struct ListNode head, *p; p = &head;int carry = 0;while(1){if(l1 && l2){l1->val += (l2->val + carry);carry = l1->val / 10;l1->val = l1->val % 10;p->next = l1;p = l1;l1 = l1->next;l2 = l2->next;}else if(l1){l1->val += carry;carry = l1->val / 10;l1->val = l1->val % 10;p->next = l1;p = l1;l1 = l1->next;}else if(l2){l2->val += carry;carry = l2->val / 10;l2->val = l2->val % 10;p->next = l2;p = l2;l2 = l2->next;}else if(carry){struct ListNode *cur = (struct ListNode*)malloc(sizeof(struct ListNode));cur->val = 1;cur->next = NULL;p->next = cur;return head.next;}elsereturn head.next;}return NULL;
}
LeetCode笔记相关推荐
- LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂
LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...
- Leetcode 笔记 116 - Populating Next Right Pointers in Each Node
题目链接:Populating Next Right Pointers in Each Node | LeetCode OJ Given a binary tree struct TreeLinkNo ...
- LeetCode笔记:Biweekly Contest 56(补发)
LeetCode笔记:Biweekly Contest 56 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:原地修改数组
LeetCode笔记:原地修改数组 自大学开始,我便陆陆续续的学习一些 算法和数据结构 方面的内容,同时也开始在一些平台刷题,也会参加一些大大小小的算法竞赛.但是平时刷题缺少目的性.系统性,最终导致算 ...
- LeetCode笔记:Weekly Contest 280
LeetCode笔记:Weekly Contest 280 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4 ...
- LeetCode笔记:Biweekly Contest 38 比赛记录
LeetCode笔记:Biweekly Contest 38 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 ...
- LeetCode笔记:Biweekly Contest 83
LeetCode笔记:Biweekly Contest 83 0. 小结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. ...
- LeetCode笔记:Biweekly Contest 55(补发)
LeetCode笔记:Biweekly Contest 55 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:Biweekly Contest 68
LeetCode笔记:Biweekly Contest 68 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:Biweekly Contest 65
LeetCode笔记:Biweekly Contest 65 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
最新文章
- Swift -布局框架SnapKit使用
- 蚂蚁金服对研发高要求的领域建模能力是指什么?
- 敏捷测试理论以及实践(2)
- C语言按行和列求平均成绩代码(指针,二维数组)
- 面试-线程池的成长之路
- memcache的使用入门C++代码
- 好奇心、求知欲、理解力一直是我生命里最强大的驱动力​
- Microsoft MVC3 框架
- 旋翼机自主着陆-主要技术难点
- 公安机关计算机网络安全协议,计算机信息网络国际联网单位网络安全协议合同范本...
- 网钛CMS采集插件-无需登陆自动采集发布插件
- NTL密码算法开源库(数论库)代码分析项目--综述
- 在阳光下关闭自动调节功能后,背光很亮,打开自动调节亮度,背光很暗[FAQ12718][AAL] 打开MTK_AAL_SUPPORT 后,自动亮度调节速度变慢
- python开启摄像头以及深度学习实现目标检测
- 如何从零开始创建React项目
- highCharts图表应用-模拟心电图
- (项目)在线教育平台(九)
- 从零开始学习VIO笔记 --- 第四讲:滑动窗口(基于滑动窗口算法的 VIO 系统:可观性和一致性)
- Flannel网络环境搭建:
- Fullcalendar v5.5.1 设计一个考勤日历插件