- 博客(23)
- 收藏
- 关注
原创 2021-5-30 连续子数组的最大和【简单题 剑指Offer 42】
【解析】(源自leetcode题解)连续子数组的最大和问题,用到动态规划方法:状态定义:设动态规划列表 dp ,dp[i]代表以元素 nums[i]为结尾的连续子数组最大和。转移方程: (维护nums每个位置的dp)若dp[i-1] ≤0 ,说明 dp[i - 1]对 dp[i]产生负贡献,即 dp[i-1] + nums[i]还不如 nums[i] 本身大,此时的dp[i]要和前面的dp[i-1]脱离关系,重新开始计算了,此时的dp[i]即为当前的nums[i]。当 dp[i - 1].
2021-05-30 20:20:28
150
1
原创 2020-11-1 有效的括号【简单题20】
文章目录题目解题知识总结题目解题【思路】对于对称括号这种问题,我们很容易想到用栈解决。当括号是左括号时,入栈;当括号是右括号时,判断其是否与栈顶的左括号匹配,是,栈顶元素出栈,继续判断下一个,否,返回false。【代码1】class Solution { public boolean isValid(String s) { Stack stack = new Stack(); for(int i=0; i<s.length(); i++){
2020-11-07 22:13:26
211
原创 2020-10-31 最长公共前缀【简单题14】
文章目录题目解题法一:横向比较法法二:纵向比较法知识总结题目解题【思路】最长公共前缀的确定方法很明确,就是要比较字符串数组中每个字符元素的每个字母。但是比较的花样可以有所不同,横向比较、纵向比较、分治比较(递归)、二分法比较等。这里只给出横向比较和纵向比较两种方法,个人觉得比较好理解。法一:横向比较法先假设第一个字符串元素为最长公共前缀com,然后从数组第二个元素(i=1)开始遍历数组后面的元素,将每个元素的每个字符与当前最长公共前缀依次比较,直至和最长公共前缀出现不同的字符,更新当前的最
2020-11-05 17:58:34
232
原创 2020-10-30 罗马数字转整数【简单题13】
文章目录题目解题知识总结题目解题【思路】罗马数字的值是通过对一串罗马字母进行其规定的计算得到的,我们知道字母是不能进行加减计算的,我们计算中用到的是罗马字母对应的数值,那么首先就要建立一个表用来告诉计算机每个罗马字母和数字的对应关系,所以我们很容易想到哈希表。本题的难点在于如何用程序描述罗马字母的计算规则,什么时候加,什么时候减。好在通常情况下,小的数字在大的数字的右边,只需要加即可。当小的数字在大的数字的左边时,再进行减法计算。小的数字在大的数字的左边的情况很少,有且只有6种(IV,IX,
2020-11-04 21:29:57
529
原创 2020-10-29 整数反转【简单题7】
文章目录题目解题题目解题【思路】本题可以想到用字符串的反转方法,但是字符串反转存在两个问题:对于负数的负号“-”的处理;判断溢出。所以最后选择用数学方法解题:弹出(x%10; x/10;)和推入数字(num = num*10 + x%10) & 溢出前进行检查...
2020-11-03 23:13:39
352
原创 2020-10-28 两数之和【简单题1】
文章目录题目解题法一:暴力枚举法二:哈希表知识总结题目解题法一:暴力枚举【思路】双重循环,外层循环从i=0开始,内层循环从j=i+1开始,防止重复计算。【代码】class Solution{ public int[] twoSum(int[] nums, int target){ for(int i=0; i<nums.length; i++){ for(int j=i+1; j<nums.length; j++){ if( nums[i] + nums[j]
2020-10-29 13:04:17
234
原创 2020-9-7 回文数【简单题9】
**2020.9.6 回文数**文章目录2020.9.6 回文数题目:解题思路:解题代码:小知识点:题目:解题思路:大致分为两个方向:字符法 :将整数转换成字符串,然后挨个比较;数学法:(进阶)将整数每个数字进行拆分,倒序重组成一个新的整数,比较新的整数和原来整数的值是否相同,是则为回文数,否则不是回文数。 或者只拆分,然后正反比较每个数字是否一样(相比前者更麻烦)。解题代码:法一:字符法import java.util.Scanner;public class Re
2020-09-07 22:44:25
299
原创 【C语言】知识点总结(链表)
随时更LinkList s = (LinkList)malloc(sizeof(LinkList));LinkList :用户自己定义的链表,是一个结构体,比如:typedef struct _LinkList {int id; // 学号char name[16]; ...
2020-09-06 20:17:31
3608
1
原创 【C语言】指针和引用的区别
【对象】C++primer中对 对象的定义:对象是指一块能存储数据并具有某种类型的内存空间。一个对象a,它有值和地址&a,运行程序时,计算机会为该对象分配存储空间,来存储该对象的值,我们通过该对象(的存储空间)的地址,来访问存储空间中的值。【指针】指针p也是对象,它同样有地址&p和存储的值p,只不过,p存储的数据类型是数据的地址。如果我们要以p中存储的数据为地址,来访问对象...
2020-03-28 02:05:03
789
转载 【C语言】交换函数(swap)
这次我们要透过一个简单的函数swap深入理解函数传参的本质以及在C中如何选择传参方式。首先,先来看第一段程序:void swap(int x, int y) { int temp = y; y = x; x = temp;}通过main函数的调用,我们发现x,y并未实现交换:int main(){ int x = 1; int y = 37;...
2020-03-18 10:19:01
61698
3
原创 Hanoi问题(汉诺塔问题)
【问题描述】问题描述:假设有3个分别命名为A、B、C的塔座,在塔座A上插有n个直径大小各不同,从小到大标号为1,2,….,n的圆盘,要求将塔座A上的n个圆盘移动到C盘上,并且仍按原来的顺序叠排。同时遵循下列规则:每次只能移动一个圆盘;圆盘可以插在A、B、C中的任一塔座上;任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。【解决思路】递归思想当有3个圆盘时,移动起来是很简单的。那...
2020-02-28 23:02:20
2177
转载 【转】C语言有参函数调用时参数间数据传递问题
谈C语言有参函数调用时参数值传递问题C语言有参函数调用时参数间数据传递问题C语言中在发生有参函数调用时,实参变量与形参变量之间的数据都是单向的“值传递”方式。包括指针变量和数组名作参数的情况。C...
2019-07-26 08:36:42
696
原创 【C】gets和scanf区别
1.scanf 和 gets 读取字符串2.深入了解scanf()/getchar()和gets()等函数3.scanf与gets函数读取字符串的区别1.scanf() 会忽略行开头的所有空格,并以空格、换行符结束输入; 使用getchar()读取scanf语句执行后,缓冲区留下的换行符, gets读入以任何字符开始的字符串,以换行符结束,但之后会丢弃换行符并以’\0’代替; 2. ...
2019-07-10 12:41:09
189
转载 【转】main(int argc, char *argv[])函数的参数意义
在vs中编写C++程序时,可以往主函数里传递两个参数:main(int argc,char *argv[])。主函数不能被其它函数调用,在window操作系统下调用者是。测试程序如下所示:#include "stdafx.h"#include "iostream"using namespace std; int main(int argc,char *argv...
2019-04-29 10:36:22
192
原创 【vi】vi编辑器卡死解决方法
我们在使用vi编辑器时,有时可能出现编辑器卡死的状态,不能输入,不能退出。其实这不是vi编辑器卡死,而是不小心把vi编辑器锁定了,编辑器处于假死状态,这时vi只是停止向终端输出而已。原因是在windows下,总是会习惯性的按ctrl+s来保存文件,但在用vi时,一按ctrl+s就会“卡死”,什么都动不了。要想退出这种状态,只需按Ctrl + q 即可恢复正常。ctrl+s 进入假死状态c...
2019-04-11 08:50:24
7548
3
转载 【转】类和对象的概念
c++是基于面向对象的语言,并不是纯面向对象的语言,因为它包含c的部分,c是面向过程的语言一、面向对象概念:面向对象程序设计(OOP)是一种程序设计的泛型,同时也是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性二、类和对象的概念1. 类:类是现实世界在...
2019-03-11 11:58:05
172
原创 单片机知识点整理
单片机知识点【实时更新】本文主要记录自己在做单片机编程时,遇到的一些调试问题或者小知识点,长期更新。1.Keil编译时提示:xxx.C(57): 错误 C202: ‘AUXR’: undefined identifier因为AUXR是内部扩展XRAM的寄存器,这个寄存器在通用的REG52.H是没有的,需要在这个文件里手动添加它。例如:sfr AUXR =0x8E; 此处的0x8E是STC的芯...
2019-03-06 09:27:25
4100
转载 【转】ARM架构和Cortex 三大系列关系小结
转自:https://blog.csdn.net/qq_38880380/article/details/79486016一、ARM介绍1、ARM在1990年成立,当初的名字是“Advanced RISC Machines Ltd.,”二、Cortex处理器家族三大方向发展进程三、ARM处理器与架构对应表四、ARM核对应的时间表致谢1、ARM_architecture维基百科2、List_of_...
2019-03-05 09:22:25
992
转载 【转】转载CSDN博客步骤
在参考“如何快速转载CSDN中的博客”后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记。 参考博客原址:http://blog.csdn.net/bolu1234/article/details/5186...
2019-03-03 22:02:56
173
原创 【vi/vim】使用方法整理
文章目录前言vi/vim是什么?vim模式有哪些?如何切换?使用vim如何打开文件?关闭文件移动光标翻屏删除如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言vi编辑器是所有Unix及Li...
2019-02-28 15:00:09
230
原创 【Qt】Qt中QMainWindow、QWidget、QDialog的区别
文章目录前言特点分述QMainWindowQWidgeQDialog区别总结选用原则参考和引用前言熟悉Qt的同学都知道,QMainWindow、QWidget、QDialog是Qt中常用的窗口,我们在新建Qt Widgets项目进行类信息选择时会碰到它们,那么他们之间到底有什么区别和联系呢?QWidget继承于QObject和QPaintDevice,QDialog和QMainWindow则...
2019-02-27 15:14:46
9226
2
原创 Qt中关于delete的应用
文章目录前言Qt半自动的内存管理父子关系建立与解除获取父、子对象关于delete的示例程序参考和引用前言这学期开了专业课Qt,第一次接触到C++,在C++中学习过程中,我们都知道:delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt作为C++的库,显然是不会违背C++的前述原则的。可是:在Qt中,我们很多时候都疯狂地用new,却很少用d...
2019-02-26 09:45:47
1084
原创 static关键字用法总结
前言今天在写单片机程序时,再次接触到static关键字,所以对static的用法进行了整理。static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。本文只是初步整理,仅供参考。后期遇到其他用法再做增补。Static 关键字静态局部变量在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。局部变量我们都知道,静态局部变...
2019-02-18 23:19:30
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人