【2月7日刷题笔记】

阴天 在开大灯的房间

目录

选择1

下面的说法正确的是

建立和关闭一个tcp 一共会产生的握手次数是

在计算机网络当中 TCP协议和UDP协议的相似之处是

已知一个进程绑定的端口号,查询该进程的命令是

以下的协议属于应用层的有

02代码

Lee_921 : 使括号有效的最少添加

Lee_1492:n的第k个因子


选择1

下面的说法正确的是

java中线程是非抢占式的

java中的线程是不可以共享数据的

每个java程序都至少有一个线程,即主线程

java中的线程不可以共享代码

java的多线程是基于抢占式的实现
java中的多线程可以使用共享内存区域:堆 方法区
java中的一段代码 要么是实例方法  或是静态方法 代码本身都是保存在方法区  属于线程共享区域

建立和关闭一个tcp 一共会产生的握手次数是

7

6

3

5

题目所说的是握手次数  指的是网络的通信次数  即是发送得网络数据包次数
建立三次握手 四次挥手 总共七次
​

在计算机网络当中 TCP协议和UDP协议的相似之处是

面向非连接的协议

面向连接的协议

其余的选项都不对

传输层协议

tcp和udp都是传输层协议,tcp是有连接的,udp是无连接的。

已知一个进程绑定的端口号,查询该进程的命令是

ps

find

netstat

show

已知进程的名称,查询的方式:ps -ef |grep  进程名
已知进程端口,查询的方式: netstat -anp|grep 进程名

以下的协议属于应用层的有

TCP

IP

ARP

FTP

tcp是传输层协议
ip是网络层协议
arp 是介于数据链路层到网络层的协议
​

02代码

Lee_921 : 使括号有效的最少添加

给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。

从形式上讲,只有满足下面几点之一,括号字符串才是有效的:

它是一个空字符串,或者 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者 它可以被写作 (A),其中 A 是有效字符串。 给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。

来源:力扣(LeetCode) 链接:力扣 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

public int minAddToMakeValid(String s) {
        if (s.length() == 0 || s == null) return 0;
        int count  = 0;
        int res = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '('){
                count++;
            }else {
                count--;
            }
​
            if (count < 0 ){
                res++;
                count = 0;
            }
​
        }
        return res+=count;
    }

Lee_1492:n的第k个因子

力扣

//使用栈进行暴力解决;
class Solution {
     public int kthFactor(int n, int k) {
        Stack<Integer> stack = new Stack<>();
​
        for (int i = 1; i <= n ; i++) {
            if (n %i == 0){
                stack.push(i);
            }
        }
​
​
        if (stack.size() < k) {
            return -1;
        }
        int len = stack.size();
        for (int i = 0; i < len-k ; i++) {
            stack.pop();
        }
        return stack.peek();
    }
}
//优化
public class Test1 {
    public int KthFac(int n ,int k){
        int count = 0 ,i;
        for (i = 1;  i*i<=n ; i++) {
            if (n % i == 0){
                count++;    
                if (count == k){
                     return i;
                }// 要是k的值在  之前就进行过
    
            }
​
        }
        i--;
        if (i*i == n){
            i--;
        }
        for (; i >0 ; i--) {
            if (n% i == 0 ){
                count++;
                if (count == k){
                    return n/i;
                }
            }
        }
        return -1;
    }
​
​
}
​
​
​


上一篇:Centos6 克隆后简单的网络配置


下一篇:聚合函数 count( * )意义