Newcoder和LeetCode七月刷题笔记

碰到的知识点都总结成笔记了,方便自己学习

 

 

牛客编程基础知识点:

1、Ascii码表有多少不同的字符编码?

答:128个。因为使用

2、c++中 操作 double d = 2.3 ;  d>>2; 对吗?那 !d (d取反)对吗?

答:所有的位运算都不能直接操作浮点数,逻辑运算符操作数可以是任何基本数据类型,所以前者错,后者对。

3、如何理解对象之间的赋值?

Student std1,std2;

std2 = std1;

对象的赋值只是对数据成员赋值,而不是对成员函数赋值。

4.c++中struct和class有什么区别?

Newcoder和LeetCode七月刷题笔记_第1张图片Newcoder和LeetCode七月刷题笔记_第2张图片

5、c++模版函数的一般形式是怎样的?

答:template ret-type func-name(parameter list), 这里type是函数所使用的数据类型的占位符,这个名称可以在函数定义中使用。

6、C++判断队列为空 queue.empty(),为空返回true,否则返回false

     Java判断队列是否为空,queue.isEmpty(),返回同上。

7、java中的queue.poll()和remove(), offer()和add()有什么区别。

java里,往队列里面添加元素有两个方法,分别是add和offer,如果队列满了,继续执行add()方法,会报IllegalStateException异常,在有容量限制的队列中,最好用offer(), 删除队列头的元素,这个方法和poll方法的不同之处在于,这个方法在队列为空的时候选择抛异常.poll方法也是删除队列头的远,如果队列为空的化,返回null

8、说一说 return,continue,break的区别?

return,break,continue三者区别

break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。 break不仅可以结束其所在的循环,还可结束其外层循环。此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟着英文冒号(:)的标识符。且它必须放在循环语句之前才有作用。

public class BreakTest2
{
  public static void main(String[] args){
    // 外层循环,outer作为标识符
    outer:
    for (int i = 0 ; i < 5 ; i++ ){
      // 内层循环
      for (int j = 0; j < 3 ; j++ ){
        System.out.println("i的值为:" + i + " j的值为:" + j);
        if (j == 1){
          // 跳出outer标签所标识的循环。
           break outer;
        }
      }
    }
  }
}

continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全中止循环。

public class ContinueTest
{
  public static void main(String[] args){
// 一个简单的for循环
    for (int i = 0; i < 3 ; i++ ){
       System.out.println("i的值是" + i);
       if (i == 1){
         // 忽略本次循环的剩下语句
         continue;
       }
       System.out.println("continue后的输出语句");
    }
  }
}

 

return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。

public class ReturnTest
{
  public static void main(String[] args){
    // 一个简单的for循环
    for (int i = 0; i < 3 ; i++ ){
      System.out.println("i的值是" + i);
      if (i == 1){
        return;
      }
      System.out.println("return后的输出语句");
    }
  }
}

9、判断结构体大小的三条准则(高频考点)

答:

Newcoder和LeetCode七月刷题笔记_第3张图片

python基础知识点:

1、说说什么是闭包,举个例子?

闭包可以理解为一种特殊的函数,它由两个函数嵌套组成,且称之为外函数和内函数,外函数返回值是内函数的引用,这就构成了闭包,in other words, 当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包。

举例:

def adder(x):
    def wrapper(y):
        return x+y
     return warpper

adder5 = adder(5)
print(adder5(adder5(6))

总结闭包的一般描述如下

Newcoder和LeetCode七月刷题笔记_第4张图片

计算机基础部分:

知识点1:  JPEG是有损压缩,它的升级版JPEG2000可以支持无损压缩

常见的无损压缩格式有: BMP(支持1位,4位,8位,24位颜色深度),PNG,GIF,TGA

数论部分:

知识点1:说一说费马小定理: 如果指数部分p是一个质数,并且不是底数a的整数倍,那么 a^(p-1) = 1(mod p).

概率与统计知识:

条件概率,全概率,贝叶斯公式理解

简介

学过概率理论的人都知道条件概率的公式:P(AB)=P(A)P(B|A)=P(B)P(A|B);即事件A和事件B同时发生的概率等于在发生A的条件下B发生的概率乘以A的概率。由条件概率公式推导出贝叶斯公式:P(B|A)=P(A|B)P(B)/P(A);即,已知P(A|B),P(A)和P(B)可以计算出P(B|A)。

假设B是由相互独立的事件组成的概率空间{B1,b2,...bn}。则P(A)可以用全概率公式展开:P(A)=P (A|B1)P(B1)+P(A|B2)P(B2)+..P(A|Bn)P(Bn)。贝叶斯公式表示成:P(Bi|A)=P(A|Bi)P(Bi)/(P(A|B1)P(B1)+P(A|B2)P(B2)+..P(A|Bn)P(Bn));常常把P(Bi|A)称作后验概率,而P(A|Bn)P(Bn)为先验概率。而P(Bi)又叫做基础概率。

贝叶斯公式:

Newcoder和LeetCode七月刷题笔记_第5张图片

你可能感兴趣的:(Newcoder和LeetCode七月刷题笔记)