前言

今天陪老姐送对象去安庆了,上午还去了西风禅寺求了个签,第一次拿到中评签,看来今年还需要继续努力哈哈哈。一直到晚上才有时间去做点题目,今天依旧是leetcode。

题目

leetcode 1 两数之和

题目

(两数之和)[https://leetcode-cn.com/problems/two-sum/]

思路

还是一样,我们先考虑一下朴素做法,显然是双重遍历,时间复杂度是O(N^2^),显然在1e5的情况下是过不掉的,所以我们选择优化到O(N)。由于我们只需要找到一个符合题意得解即可,我们可以利用哈希表的特点边遍历边读入,这样的时间复杂度是最小的。

代码

class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> hash;
int len = nums.size();
for(int i = 0; i < len; ++ i){
int t = target - nums[i];
if(hash.count(t)) return {hash[t], i};
hash[nums[i]] = i;
}
return {};
}
};

2. leetcode 2 两数相加

题目

(两数相加)[https://leetcode-cn.com/problems/add-two-numbers/]

思路

其实就是链表的模拟题。

代码

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* res = new ListNode(-1);
ListNode* temp = new ListNode;
res = temp;
int carry = 0;
while(l1 || l2){
int n1 = l1 ? l1->val : 0;
int n2 = l2 ? l2->val : 0;
int sum = n1 + n2 + carry;
carry = sum / 10;
temp->next = new ListNode(sum % 10);
temp = temp->next;
if(l1) l1 = l1->next;
if(l2) l2 = l2->next;
}
if(carry) temp->next = new ListNode(1);
return res->next;
}
};

Acwing 第37场周赛 B题 4297 截断数组

题目

(截断数组)[https://www.acwing.com/problem/content/4300/]

思路

用一个前缀数组一个后缀数组来维护值就行了,需要注意的是题目要求从中间切开所以中间的数组长度绝对不为0,所以双指针的lr不能相碰。

代码

#include <bits/stdc++.h>

using namespace std;

const int N = 2e5 + 10;

int arr[N];
long long pre[N], last[N];//预加载前后缀和数组 int main(){
int n; cin.tie(0);
ios::sync_with_stdio(false);
cin >> n;
for(int i = 0;i < n; ++i){
cin >> arr[i];
} for(int i = 1; i <= n; ++ i){
pre[i] = pre[i - 1] + arr[i - 1];
} for(int i = n; i >= 1; -- i){
last[i] = last[i + 1] + arr[i - 1];
} int l = 1, r = n;
long long res = 0; while(l < r){
if(pre[l] > last[r]){
r--;
}else if(pre[l] < last[r]) {
l++;
}else{
res = max(res, pre[l]);
l++;
}
}
cout << res;
}

2022.02.05 DAY2的更多相关文章

  1. ROS的安装-> rosdep init /update报错2022.02.24实测有效

    ROS的安装-> rosdep init /update报错2022.02.24实测有效   一. 解决rosdep_init问题 正常执行sudo rosdep init会报错,如下: ERR ...

  2. 2022.02.27 CF811E Vladik and Entertaining Flags

    2022.02.27 CF811E Vladik and Entertaining Flags https://www.luogu.com.cn/problem/CF811E Step 1 题意 在一 ...

  3. 2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集)

    2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集) https://www.luogu.com.cn/problem/CF811E Ste ...

  4. 2022.02.21 UB

    2022.02.21 UB 参考资料: https://zhuanlan.zhihu.com/p/141467895 https://blog.csdn.net/ghscarecrow/article ...

  5. 2022.02.21 SA

    2022.02.21 SA 当我年少轻狂时,我曾拥有自由,但我并不明白它的意义.我曾拥有时间,但我没有意识到它的珍贵.我曾拥有爱,但我从未用心去体会.数十年的时间考验后,我终于理解了三者的真谛. 我已 ...

  6. 2022.02.20 SA

    2022.02.20 SA 如果我还能看见明天黎明,如果我还能再爬起来,我仍会走我的路,哪怕这条路已经荒废许久,也许我们无法拥有感情,我们甚至无法像个正常人一样接受太阳的洗礼,但是我依然会执行我的条约 ...

  7. 2022寒假集训day2

    day1:学习seach和回溯,初步了解. day2:深度优化搜索 T1 洛谷P157:https://www.luogu.com.cn/problem/P1157 题目描述 排列与组合是常用的数学方 ...

  8. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  9. iOS 学习笔记 一 (2015.02.05)

    一:Xcode6输入框设置为 keyboard type设置为Number Pad弹不出键盘的解决办法   问题:Can't find keyplane that supports type 4 fo ...

随机推荐

  1. The Luckiest number(hdu2462)

    The Luckiest number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. <数据结构>XDOJ324,325图的优先遍历

    XDOJ324.图的广度优先遍历 问题与解答 问题描述 已知无向图的邻接矩阵,以该矩阵为基础,给出广度优先搜索遍历序列,并且给出该无向图的连通分量的个数.在遍历时,当有多个点可选时,优先选择编号小的顶 ...

  3. Java初学者作业——简单程序根据用户输入的会员类型以及购物金额,判断是否能够享受活动优惠

    返回本章节 返回作业目录 需求说明: 超市周年庆举行购物满减活动,编写Java程序,根据用户输入的会员类型以及购物金额,判断是否能够享受活动优惠,会员类型的输入不限制大小写.具体获取规则:若为VIP会 ...

  4. UTF-8,GBK,ANSI之间的关系和区别

    GBK应该是属于ANSI之中的,在ANSI的国际通用集,GBK是专门来解决中文编码的,是双字节的,不论中英文都是双字节,而UTF-8是才用的另外的一种编码方式,对英文是用8位,对中文使用24位,是和A ...

  5. Zookeeper单机安装(开启kerberos)

    安装规划 zookeeper安装到zdh41上面,单机模式 10.43.159.41 zdh41 ZDH.COM 安装用户 zookeeper/zdh1234 useradd -g hadoop -s ...

  6. MongoDB应用场景及选型

    1. MongoDB数据库定位 * OLTP数据库 * 原则上Oracle和MySQL能做得事情,MongoDB都能做(包括ACID事务) * 优点:横向扩展能力,数据量或并发量增加时候可以自动扩展 ...

  7. js 中&&的使用

    遇到下列代码goHome && (await router.replace(PageEnum.BASE_HOME)); &&这个逻辑与的作用是,当goHome为true ...

  8. centos7安装wordpress详细教程

    安装之前:建议安装各种软件 [root@localhost ~]# yum -y install wget zip unzip net-tools 一.安装apache 测试环境建议关闭防火墙和SEL ...

  9. 为 MySQL 的 root 用户设置一个密码。

    shell> mysqladmin --user=root password somepasswordshell> mysqladmin --user=root --password re ...

  10. Python常用功能函数系列总结(二)

     本节目录 常用函数一:sel文件转换 常用函数二:refwork文件转换 常用函数三:xml文档解析 常用函数四:文本分词 常用函数一:sel文件转换 sel是种特殊的文件格式,具体应用场景的话可以 ...