
力扣刷题记录
以刷题为乐趣
aFakeProgramer
Adaptive AUTOSAR的技术专家,2024 AUTOSAR中国官方TOP培训讲师,具备深厚的汽车行业知识和以太网通信技能。SOME/IP、IPC、DDS、DoIP、UDS、TSN和SOA架构,MQTT,加密,操作系统,v2x,以及c++和Python编程语言。
展开
-
利用栈实现树的中序遍历
94. 二叉树的中序遍历难度中等537收藏分享切换为英文关注反馈给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ..原创 2020-06-23 16:45:02 · 1435 阅读 · 0 评论 -
6月23 leetcode 二进制求和
67. 二进制求和难度简单404收藏分享切换为英文关注反馈给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1" 输出: "100"示例2:输入: a = "1010", b = "1011" 输出: "10101"提示:每个字符串仅由字符'0'或'1'组成。 1 <= a.length, b.length <= 10^4 字符串如果不是"0",就都不含前...原创 2020-06-23 13:55:30 · 204 阅读 · 0 评论 -
leetcode刷题 旋转链表
92. 反转链表 II难度中等393反转从位置m到n的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL基础知识:反转指定下标(i 到 j)之间的元素,包括位置i和j对应的元素;#include <iostream>#inclu...原创 2020-06-20 22:10:48 · 254 阅读 · 0 评论 -
厄拉多塞筛法 快速求质数 /回文子串
西元前250年,希腊数学家厄拉多塞(Eeatosthese)想到了一个非常美妙的质数筛法,减少了逐一检查每个数的的步骤,可以比较简单的从一大堆数字之中,筛选出质数来,这方法被称作厄拉多塞筛法(Sieve of Eeatosthese)。具体操作:先将 2~n 的各个数放入表中,然后在2的上面画一个圆圈,然后划去2的其他倍数;第一个既未画圈又没有被划去的数是3,将它画圈,再划去3的其他倍数;现在既未画圈又没有被划去的第一个数 是5,将它画圈,并划去5的其他倍数……依次类推,一直到所有小于或等于 n 的各数原创 2020-06-19 22:41:24 · 624 阅读 · 0 评论 -
面试题52. 两个链表的第一个公共节点
面试题52. 两个链表的第一个公共节点难度简单51收藏分享切换为英文关注反馈输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相.原创 2020-06-13 22:05:22 · 172 阅读 · 0 评论 -
6月8 力扣 回文数和验证回文串
9. 回文数难度简单1057收藏分享切换为英文关注反馈判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这.原创 2020-06-08 10:18:18 · 233 阅读 · 0 评论 -
力扣刷题6月4 两数相加
面试题38. 字符串的排列难度中等46收藏分享切换为英文关注反馈输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8class Solution {public: vector<string> permutation(string s)原创 2020-06-04 21:48:31 · 264 阅读 · 0 评论 -
leetcode刷题5/29
面试题24. 反转链表难度简单42定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000/** * Definition for singly-linked list. * struct ListNode { * int val; *原创 2020-05-29 20:45:14 · 289 阅读 · 0 评论 -
算法刷题5-27 找到一个数组中出现一次的数字, 其他数字出现均为偶数次
找到一个数组中出现一次的数字, 其他数字出现均为偶数次input【1,1,2,3,3,4,4,6,7,6,7】out: 2算法思路:1^1=00^1 =10^1^2^1=2#include <iostream>#include <vector>using namespace std;int main(){ vector <int> v1 = {1,1,3,3,4,4,2}; int res = 0; f...原创 2020-05-27 21:22:56 · 419 阅读 · 0 评论 -
leetcode 刷题 三元组问题 三数之和等于0
15. 三数之和难度中等2128收藏分享切换为英文关注反馈给你一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4];满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]这是一道非常典型的题目,值得我们细细研究。题意十分简单,在一...原创 2020-05-23 22:22:58 · 1879 阅读 · 0 评论 -
leecode刷题 Longest Substring Without Repeating Characters
1、Two SumGiven 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原创 2020-05-21 14:40:47 · 201 阅读 · 0 评论 -
Leecode刷题 把数组中的0移动到数组的尾部,其余数字保持之前的相对位置不变
talk is cheap ,show me your code!c++解法:思路:两个指针 i 和 j,一个快,一个慢。快指针i读取到非0值,就传到j指针指向的地方。这样i指针跑到结尾时,j就存完了最后一个非零的数了。然后把指针 j 以后的所有数字全部变为0就可以实现啦。#include <iostream>using namespace std;int main() { int arr[]={0,3,0,5,0,23,45,0,66}; int j = ..原创 2020-05-16 18:13:21 · 647 阅读 · 0 评论 -
c++刷题,判断一个数是不是2的幂次,并判断一个数的不以0位开头的变位数是不是2的幂次
问题2:《编程之美——微软技术面试心得》这本书中讲了三种方法,都很精辟,一种的判断方法如下:intis_pow_of2(inti){intcount=0;while(i){count+=i&0x01;i>>=1;}if(count<2){printf("YES");//若count=0或者count=1,...原创 2020-05-15 07:35:36 · 639 阅读 · 0 评论 -
牛客 c++网刷题 爆炸数组 字符串匹配问题
class Solution {public: vector<int> decompressRLElist(vector<int>& nums) { vector<int> vec1 = nums; vector<int> vec2; vector<int>::iterator it = vec1.begin(); if(nums.size() >=2 &...原创 2020-05-14 08:09:03 · 419 阅读 · 0 评论 -
刷题c++ 思考
1 有一个vector数组,要从中去掉一个数,使的这个数组中的数的连乘积最大,返回这个数的下标(数组中可能有正数,负数,0 )int getMax(Vector &v1,int index){}写一下思路:来一次遍历,记录数组中的正数的最小值,记录数组中的负数的个数和负数的最大值,记录数组中的0的个数,如果负数的个数是偶数或者0,并且没有0 ,那...原创 2019-10-31 09:39:15 · 183 阅读 · 0 评论