
NewcoderAndLeetcode
独孤的大山猫
艰苦奋斗
展开
-
Newcoder和Leetcode5月刷题笔记
知识点1: 用户标识符要求由字母、数字、下划线组成,并且不能用数字作为标识符的开头。知识点2:树从根结点开始往下数,叶子结点所在的最大层数称为树的深度。从0开始数,深度=高度-1,从1开始数,深度等于高度。附:霍夫曼数深度一般从0开始数,一般用于计算带权路径长度。知识点3:我们都知道有序数组存储数据,对数据的索引效率都很高,但是插入和删除就会有性能瓶颈(回忆ArrayList),链表存储...原创 2019-06-02 14:23:13 · 398 阅读 · 1 评论 -
动态规划(dynamic programming)学习笔记(上)
一、概述key point: 1、确定原问题与子问题 2、阶段的状态(包含边界状态(或者说是边界条件)) 3、状态转移方程(难点也是最重要的一点)二、例题1keypoint: 如果用递归(本质是压栈和出栈的过程),提交的时候编译器会报超时,(因为n很大的时候,有很多重复计算)(拆成二叉树理解,比如climbStairs(5)拆成climbStairs(4)+cl...原创 2019-08-12 19:51:16 · 256 阅读 · 0 评论 -
Newcoder和LeetCode六月刷题知识点笔记
数据结构之图相关知识点:知识点1:用什么方法判断一个有向图带有环?知识点2:说一下什么时候系统会调用拷贝构造函数?知识点3:说一说拷贝构造函数和重载的= 函数有什么分别在什么时候被调用?知识点4:谈一谈内核态和用户态知识点5: 怎么理解python中list数组读取一列和numpy中array读取方式的不同?知识点6:说一说常见的排序算法的时间复杂度和空...原创 2019-07-31 14:53:56 · 646 阅读 · 0 评论 -
第十一题:顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.class Solution {public: vector<int> printMatrix(...原创 2019-07-31 14:52:40 · 131 阅读 · 0 评论 -
第十二题:合并两个单调递增链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ...原创 2019-07-31 14:52:50 · 233 阅读 · 0 评论 -
第十题:树的子结构 *
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class...原创 2019-07-31 14:52:13 · 86 阅读 · 0 评论 -
第九题:调整数组顺序,使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public: void reOrderArray(vector<int> &array) { vector<int> ve...原创 2019-07-31 14:52:02 · 90 阅读 · 0 评论 -
第八题:数值的整数次方
题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。class Solution {public: double Power(double base, int exponent) { if(exponent == 0) return 1; int flag = exponent; //只...原创 2019-07-31 14:51:55 · 97 阅读 · 0 评论 -
第六题:跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。class Solution {public: int jumpFloor(int number) { if(number == 0) return 0; if(number == 1) ...原创 2019-07-31 14:51:37 · 105 阅读 · 0 评论 -
第四题:旋转数组中的最小数组
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateArr...原创 2019-07-31 14:51:10 · 100 阅读 · 0 评论 -
第三题:从尾到头打印链表
题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/cla...原创 2019-07-31 14:51:00 · 104 阅读 · 0 评论 -
第十三题:从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {publi...原创 2019-08-04 10:52:47 · 121 阅读 · 0 评论 -
第七题:变态跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloorII(int number) { if(number == 0) return 0; if(number == 1) return 1; if(n...原创 2019-07-31 14:51:46 · 137 阅读 · 0 评论 -
第五题:Fibonacci
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39//递归,这个超时了,然后又写了一个迭代。class Solution {public: int Fibonacci(int n) { if(n == 0 || n == 1) return n; else ...原创 2019-07-31 14:51:25 · 145 阅读 · 0 评论 -
第二题:替换空格
题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { //边界条件判断,保证程序的鲁棒性 if(str =...原创 2019-07-31 14:50:50 · 140 阅读 · 0 评论 -
剑指offer第一题:二维数组中的查找
一刷只写最容易理解和想到的方法,二刷开始优化,大佬轻喷。题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector<vector...原创 2019-07-31 14:50:39 · 100 阅读 · 0 评论 -
Newcoder和LeetCode七月刷题笔记
碰到的知识点都总结成笔记了,方便自己学习牛客编程基础知识点:1、Ascii码表有多少不同的字符编码?答:128个。因为使用2、c++中 操作 double d = 2.3 ; d>>2;对吗?那 !d (d取反)对吗?答:所有的位运算都不能直接操作浮点数,逻辑运算符操作数可以是任何基本数据类型,所以前者错,后者对。3、如何理解对象之间的赋值?...原创 2019-08-28 21:12:23 · 740 阅读 · 0 评论