LeetCode 解题报告

LC_1_解题报告
LC_2_解题报告
LC_3_解题报告
LC_4_解题报告
LC_5_解题报告
LC_6_解题报告
LC_7_解题报告
LC_206_解题报告
LC_237_解题报告
LC_344_解题报告

====================================================================
LeetCode 1. Two Sum
解题思路:两次循环遍历数组,找到两个元素和等于target
注意点:无
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_1.html

LeetCode 2 Add Two Numbers
解题思路:用LinkList代表整数中每一个数字,模拟加法进位的方式进行求和计算。

注意点:需要考虑大数情况,不能直接用int保存每个LinkList对应的值。考虑 [5] [5] -> [0, 1] 这种单独进位的情况
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_2.html

LeetCode 3. Longest Substring Without Repeating Characters
解题思路:两层循环,外层循环负责定位substring的起始点,内层循环负责定位substring的终点
字符串从前向后遍历,每次遍历一个字符,将其加入set,判断下一个字符是否在set中,
如果已经在,则退出内层循环

注意方向:用set保存已经加入的字符char,合理运用可用的数据结构
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_3.html

LeetCode 4. Median of Two Sorted Arrays
解题思路:将两个有序数组合并后,再找出中数。利用C++ vector动态增加特性

注意方向:合并逻辑,依次比较两个数组的首元素,小的往新数组里面添加,并向后移动一位
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_4.html

LeetCode 5. Longest Palindromic Substring
解题思路:中心回溯法。由中心字符向两边找,如果两边字符一样,再向外扩散,直到不一样的情况,就可以找出最长回文子串了

注意点:

  1. 注意区分偶数字符回文子串以及奇数字符个数回文子串
  2. 注意向两侧遍历时,遇到字符不一样的情况时,回文子串是start+1,end-1. 不要算上左右不等的那两个字符
    详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_5.html

LeetCode 6. ZigZag Conversion
解题思路:字符串之字形排序。找出排序规律。
规律:一共有N行,则total = 2*(N-1)个字符组成一个完整序列。序列中下标idx % total
如果大于N则下标换为(total-idx) % total ,下标对应在第几行
注意点:首先读懂题目,了解要求,找到每个位置应该存放什么字符的规律.
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_6.html

LeetCode 7. Reverse Integer
解题思路:通过bool值判断是否为负数,然后将负数转换为正数。再将正数的每一个数字进行vector
保存。然后先通过判断vector中每个数字判断是否会反转溢出

注意点:1.x == -2147483648直接返回0,因为取正数时已经溢出 2. 判断存储的每一个数字翻转后是否溢出
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_7.html

LeetCode 206. Reverse Linked List
解题思路:

  1. 将链表每个节点数值存在vector中,再反序遍历生成新的链表。这种解法需要空间复杂度O(N)
  2. 空间复杂度为1的做法,在每次遍历其中一个节点时,用一个指针保存当前节点的前一个节点,
    一个指针保存当前节点的下一个节点在每次遍历时,都操作当前节点的翻转动作

整个过程分4步骤
(1)获取当前的下一个节点指针,用于遍历到下一个节点 (2)当前节点的下一个节点重新指向到前一个
(3)前一个等于当前 (4) 当前等于下一个 即形成了一个节点的完整翻转逻辑

注意方向:空间复杂度O(1)的方式,针对每个节点进行翻转 最终翻转这个单项链表.注意原来的
头结点的next复制NULL
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_206.html

LeetCode 237. Delete Node in a Linked List
解题思路:这道题要换一个思路,不能考虑将node前面的节点的next直接指向node的下一个,因为node前面那个节点的
指针在单向链表中根本不可能获取到。再考虑到要删除的node不为尾节点,这里考虑采用node拷贝替换的方式
将当前要删除的node值完全拷贝为他后一个的值(node->val= node->next->val, node->next = nodex->next->next)
类似于深拷贝概念,将后面Node完整拷贝到前面,形成删除了前面节点的效果

注意点:转换思维,不能寻找Node前一个节点的死路上遇到死胡同。 单项链表中,没法获取当前Node之前的Node
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_237.html

LeetCode 344 Reverse String
解题思路:将string中前后字符颠倒

注意方向:采用前后置换法,将str[0] 和 str[size-1] 进行依次交换
详细信息:http://www.cnblogs.com/lihuagang/p/leetcode_344.html

转载于:https://www.cnblogs.com/lihuagang/p/crack_leetcode.html

[LeetCode] [C++] 第一轮刷题总结(持续更新~~~)相关推荐

  1. 自学it18大数据笔记-第一阶段Java-day16-day17-day18-day19--day20-day21-day22——会持续更新...

    笔记为自学时随手记录,如有错误,欢迎指正,不胜感激!现已广州转移至上海,欢迎小伙伴们加qq或微博沟通交流(QQ,微博和博客同名) 笔记分享:自学it18大数据笔记-第一阶段Java-day16-day ...

  2. leetcode 题解 (500-1000题,持续更新,part 2)

    part1(1-500), part3(1000-*) 502. IPO 题意:给定k,w,profits数组和capital数组.k表示最多可完成的任务数.w是初始资本.profits是各个任务的收 ...

  3. LeetCode每日一题(持续更新中~~~)

    文章目录 2432. 处理用时最长的那个任务的员工5.5 1419. 数青蛙5.6 1010. 总持续时间可被 60 整除的歌曲5.7 2432. 处理用时最长的那个任务的员工5.5 共有 n 位员工 ...

  4. LeetCode面试必刷题目总结 持续更新中...

    说明 文章源地址:sanzo.top/#/post/算法与数据结构/算法题 多数元素 题目链接 找到数组中众数(出现次数>⌊n2⌋>\lfloor\frac{n}{2}\rfloor> ...

  5. 2022年最新版Android安卓面试题+答案精选(每日20题,持续更新中)【十】

    前言 好久不见,甚是想念.各位朋友们,我又携带着最受大家欢迎的面试题回来了,可能会有朋友要问了:哎呀,你咋不更了,这不是上次那一份资料用完了嘛,这不,我又厚着脸皮去问我们公司的主管:Boss,给我份面 ...

  6. 【在线笔试题解题报告系列】网易2017校招内推笔试之编程题【持续更新】

    网易今年把内推笔试放在牛客网上办,然后出了一批编程题. 题目在: http://www.nowcoder.com/test/2252286/summary http://www.nowcoder.co ...

  7. 招行每日答题赢积分题库(持续更新)

    ### 整理自网上其他人的,本人会根据实测不定期修正错误的答案,也欢迎网友斧正!### Q1:外国人查询到的信用报告为本国语言 A:错误 Q2:什么理论可以用来描述"小钱也有大用处" ...

  8. 财务管理计算题(持续更新)

    一.设备更新 1.某公司有一台设备,购置成本为 15 万元,预计可使用 10 年,已使用 年,残值为购置成本的 10%,该公司采用直线法计提折旧.现该公司拟购买新设备替换原设备,新设备购置成本 20 ...

  9. 数据库系统概论笔记(第一章 引言)—— 持续更新,争取每周更新一章

    第一章 引言 数据库管理系统(DataBase-Management System, DBMS)*是由一个相互关联的数据的集合和一组用以访问这些数据的程序构成.这个数据集合通常称为数据库(DataBa ...

最新文章

  1. 传统CV和深度学习方法的比较
  2. hadoop完全分布式
  3. 耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park
  4. thymeleaf依赖_玩转SpringBoot集成 Thymeleaf 模版引擎
  5. 模糊数学笔记:七、模糊综合评判决策
  6. python3 实现 A+B Problem(百练OJ:1000)
  7. 解决docker报错: ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
  8. mysql数据库备份工具expdb,使用expdp完成自动备份数据库案例以及遇到的问题
  9. python base64编码_JS和Python实现AES算法
  10. tensorflow之tf.train.exponential_decay()指数衰减法
  11. 美CFTC任命Jason Somensatto担任金融技术研究部门代理总监
  12. Ubuntu 16.04通过源码安装QUEM虚拟机
  13. 久违了,我的baby!
  14. iOS 渲染原理解析
  15. win10定时开机(Win10定时开机关机)
  16. opencv打开网络摄像机实时视频
  17. linux 命令:ps 详解
  18. LeetCode162数组寻峰问题
  19. 计算机中保存和另存为,电脑另存为在哪里
  20. 四、划分子网和构造超网

热门文章

  1. 万能android调用webservice方法——参数类型不受限制
  2. devops和docker_通过免费的2小时Docker课程学习DevOps基础知识
  3. graphql是什么_为什么GraphQL是避免技术债务的关键
  4. 领域驱动设计 敏捷_反馈失败:发现敏捷数据驱动的致命弱点的风险
  5. rxswift中hud_如何在RxSwift中运行测试
  6. 女性程序员大会ghc_在女性科技大会上成为男人的感觉
  7. mysql 主从复制 和基于gtid的mysql主从复制
  8. react es6+ 代码优化之路-1
  9. 《JAVA与模式》之简单工厂模式
  10. Java 对synchronized的补充Lock锁