![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣 简单
oomoomoooq
个人博客:https://kkalts.github.io/f7.github.io/
欢迎访问
展开
-
119 力扣杨辉三角 Ⅱ
1.模拟 动态规划118的状态转移公式 dp[i][j] = dp[i-1][j-1] + dp[i-1][j]可以看到可将[i-1],[i]省掉 只返回指定行// dp[i][j] = dp[i-1][j-1] + dp[i-1][j]vector<int> getRow(int rowIndex) { vector<int> a; ...原创 2019-12-19 11:23:48 · 136 阅读 · 0 评论 -
力扣 121 买卖股票的最佳时间
用了一种暴力算法 过于暴力 超时了class Solution {public: int maxProfit(vector<int>& prices) { //找最大 最小值 最小值下标在最大值下标之前 即将第一位最大拿出讨论即可 vector<int>::iterator it; ...原创 2019-12-12 11:25:43 · 165 阅读 · 0 评论 -
力扣 27 移除元素
与26相似 基本相同 只是由于26是数组之间元素比较 27是数组元素与传入参数比较 因此两指针起始位置不同 整体思路相同从不等方面思考(记录保留)i慢指针j快指针不等时两指针指向同一位置 两指针都移动相等时 快指针移动 慢指针不动 待到再相等时快指针位置元素覆盖慢指针位置元素,将相等项删除即可代码class Solution {public: int removeEleme...原创 2019-11-26 19:43:16 · 185 阅读 · 0 评论 -
力扣 26 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...原创 2019-11-25 18:02:12 · 147 阅读 · 0 评论 -
力扣 876 链表中间结点
一开始延续回文链表向量数组的写法 只返回了结点值 且忘记向量可以为结点类型 导致出错本题其实很简单 想的有点复杂了1.向量数组class Solution {public: ListNode* middleNode(ListNode* head) { vector<ListNode*> a= {head}; while(a.back()...原创 2019-11-24 19:55:03 · 173 阅读 · 0 评论 -
力扣 237 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: ...原创 2019-11-24 18:07:26 · 150 阅读 · 0 评论 -
力扣 234 回文链表
快慢指针找中点(注意奇偶)分开反转后半链比较(以后半链为主)class Solution {public: bool isPalindrome(ListNode* head) { ListNode *p=new ListNode(-1);//预先指针 ListNode *fast=p; ListNode *low=p; ...原创 2019-11-24 17:03:25 · 224 阅读 · 0 评论 -
力扣 206反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL1.利用外部条件 容器2.双指针 迭代class Solution {public: ListNode* reverseList(ListNode* head) { ListNode *p...原创 2019-11-24 16:27:04 · 147 阅读 · 0 评论 -
力扣 203 移除链表元素
一开始想太简单了没有考虑到已经遍历到的结点无法删除有三种方法:1.在原表基础上删除 要定义指向当前结点前一结点的指针/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next...原创 2019-11-23 17:56:02 · 189 阅读 · 0 评论 -
力扣 160相交链表
一开始想到的暴力解法忽略了两链表不等长时,都从第一个元素开始遍历会失败解法1.暴力解法指针遍历链表,但是要记得若两链表不等长则不能只遍历一遍,则需要两个while形成两层遍历,则一链表为基,从起始遍历另一链表,相互比较。即对链表A中的每一个结点ai ,遍历整个链表 B 并检查链表 B 中是否存在结点和ai相同。class Solution {public: ListNode *g...原创 2019-11-20 15:49:45 · 149 阅读 · 0 评论 -
力扣 114环形链表
第一种超出时间限制且不知是否符合题意/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {publi...原创 2019-11-13 20:47:00 · 150 阅读 · 0 评论 -
力扣 083 删除排序链表中的 重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3/** * Definition for singly-linked list. * struct ListNode { * int val;...原创 2019-11-13 17:28:58 · 101 阅读 · 0 评论 -
力扣226 翻转二叉树
即左右进行交换再递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct TreeNode* invertTree(struct Tre...原创 2019-11-05 19:49:33 · 229 阅读 · 0 评论 -
力扣 104二叉树的最大深度+111 二叉树的最小深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。int maxDepth(struct TreeNode* root){ if(root==N...原创 2019-10-25 20:38:08 · 133 阅读 · 0 评论 -
力扣101 对称二叉树 + 力扣 100 相同的树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3用递归基本思想:抛开根结点,从左右子树出发,递归两种思考方式:1.从false方面出发,在左右子树均存在...原创 2019-10-22 20:56:10 · 105 阅读 · 0 评论 -
力扣 007 整数反转 C
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。此题可以直接用数学方法,...原创 2019-08-31 20:23:37 · 166 阅读 · 0 评论 -
力扣 009 回文数 C语言
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。三种方法:1 ...原创 2019-09-08 16:13:40 · 645 阅读 · 2 评论 -
力扣 984 不包含aaa或bbb的字符串 python
给定两个整数 A 和 B,返回任意字符串 S,要求满足:S 的长度为 A + B,且正好包含 A 个 ‘a’ 字母与 B 个 ‘b’ 字母;子串 ‘aaa’ 没有出现在 S 中;子串 ‘bbb’ 没有出现在 S 中。示例 1:输入:A = 1, B = 2输出:“abb”解释:“abb”, “bab” 和 “bba” 都是正确答案。示例 2:输入:A = 4, B = 1输出:...原创 2019-09-21 21:01:03 · 452 阅读 · 0 评论 -
力扣 155 最小栈
部分思想及代码转载自:https://blog.csdn.net/alps1992/article/details/41741811一开始忘了考虑最小栈会被退栈以及还会有进栈的数问题代码报废每次更新 时间复杂度O(n),过高效率高的方法,时间复杂度O(1).我们每次入栈的时候,保存的不再是真正的数字,而是它与当前最小值的差(当前元素没有入栈的时候的最小值)。 这样我们pop和top的时候拿...原创 2019-09-25 16:06:05 · 214 阅读 · 0 评论 -
力扣 1 两数之和 C python
力扣 1 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]暴...原创 2019-08-13 20:11:57 · 329 阅读 · 0 评论