随笔分类 - C/C++
摘要:https://blog.csdn.net/qq_43827595/article/details/104672938 链表创建: #include <iostream> using namespace std; struct ListNode { int data; ListNode *next;
阅读全文
摘要:198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到
阅读全文
摘要:分治和回溯本质上还是递归:找到问题的重复性 找到问题的重复性,分解问题,找到子问题,解决子问题,子问题结果再组合 最优重复性就是动态规划 一、分治:代码模板: 1)结束条件:到了最底层,到了叶子节点,没有子问题了 2)处理操作:处理当前问题,就是怎么把大问题分解成小问题 类似,求N的阶乘:N*FUN
阅读全文
摘要:367. 有效的完全平方数给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何内置的库函数,如 sqrt。 示例 1:输入:16输出:True 示例 2:输入:14输出:False 思路1:牛顿迭代法:最快的是用一个公式:
阅读全文
摘要:一、问题描述 给出一个整型数组,以及一个区间范围[min,max],写一个函数产生一个在此区间范围内的随机数,并且该随机数不在数组里,假设总能找到该随机数。 二、分析与解答 分成两步,即可解答。第一步,生成一个随机数x包含于[min,max];第二步,判断此随机数是否在数组中,是的话重新生成一个随机
阅读全文
摘要:牛客网的刷题系统大部分都是要自己控制输入输出的,有输入输出的编程就会出现各种格式问题,(说到底在输入输出上出现问题可能还是对语言基础掌握不牢), 下面就是一些常见的输入输出问题(如果leetcode刷习惯了,估计会经常采坑) while(cin)说明 下面谈到的输入问题其实都建议用while(cin
阅读全文
摘要:41 缺失的第一个正数给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1 提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间
阅读全文
摘要:648. 单词替换在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。现在,给定一个由许多词根组成的词典和一个句子。你需
阅读全文
摘要:10. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s = "aa" p = "a"
阅读全文
摘要:7、整数反转:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21 思路:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^3
阅读全文
摘要:912. 排序数组 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0] 输出:[0,0,1,1,2,5]更简单易懂的方法: 定第一个元素为基准元素,然后利用两个指
阅读全文
摘要:贪心算法经典题目:https://blog.csdn.net/qq_42820853/article/details/106788590 博主leetcode系列解题思路可以都过一遍。 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大
阅读全文
摘要:回溯算法简介: 回溯算法是一种试探性算法,会对每一次试探结果进行评估。如果当前的情况已经满足要求,则没有必要继续试探,也就是可以避免走弯路。如果当前情况满足要求,则保存相应的方法。 回溯的特性是可以在出现非法情况时,算法可以回退到之前的情景,可以返回一步或多步。 1、子集、排列、组合问题 都可以使用
阅读全文
摘要:自定义STL中sort的排序规则 前情提要: 0、要使用sort,首先需要包含头文件< algorithm> 1、sort函数可以指定两个参数,也可以指定三个参数。 (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序元素的后一位的地址) (3)第三个参数是排序的方法,可
阅读全文
摘要:1、剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) class CQueue {
阅读全文
摘要:1、最短编辑距离: #include <iostream> #include <string.h> #include <vector> #include <algorithm>//min()包含头文件 sf using namespace std; int main(){ char str1[102
阅读全文
摘要:一、题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。例如数组为{1,3,5,7,1,3,5,9},找出7和9。 二、解答: 1、运用异或运算符的解法 我们先考虑上述问题的简单版本: 一个数组里面只有一个数字出现一次,其他都出现两次,请找出这个数字。
阅读全文
摘要:c++11新加入了emplace_back(): 如果要将一个临时变量push到容器的末尾,push_back()需要先构造临时对象,再将这个对象拷贝到容器的末尾,而emplace_back()则直接在容器的末尾构造对象,这样就省去了拷贝的过程。 请看代码: #include <iostream>
阅读全文
摘要:难度:★☆☆☆☆类型:数组 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。 示例 2:输入: "aba"输出: False
阅读全文