网易测开题目保存20.08.08

使用>>指令向文件追加内容,原内容将保存。

使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。

 

强连通图:在G中,如果对于每一对vi、vj(vi≠vj),从vi到vj和从vj到vi都存在路径。

n个顶点的有向强连通图:至少n条边(形成一个环);至多n(n-1)条边

n个顶点的无向强连通图:至少n-1条边(形成一条直线);至多n(n-1)/2条边

 

如果已知数字有{1,2,5,10},每个数字可以无限次使用,构造出数字100,编程解决用到的编程思想有(动态规划)

HTTP请求方法有8种:get、post、put、delete、options、trace、connect、head,其中至少应该实现get、head、post方法,其他方法都是可选的。

下列排序算法中,初始数据集合对排序性能无影响的是?

有影响:

冒泡排序:arr[j] < arr[j+1]则不交换。

插入排序:看能滑动到哪个位置,所以初始数组的排列顺序会有影响。

快速排序:数组有序(正序/逆序)时,选最后一个数作为num,时间复杂度会变为O(N^2);如果Num正好在中间则是O(NlogN)。

无影响:

归并排序:递归的过程

选择排序:不管怎样都要遍历整个数组,每次找到1个位置的最小值。

堆排序:先将数组组织成大根堆,然后每次将堆顶与数组最后一个元素交换

 

一、delete

1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。

2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。

3、delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。

二、truncate

1、truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。

2、truncate会删除表中所有记录,并且将重新设置高水线和所有的索引,缺省情况下将空间释放到minextents个extent,除非使用reuse storage,。不会记录日志,所以执行速度很快,但不能通过rollback撤消操作(如果一不小心把一个表truncate掉,也是可以恢复的,只是不能通过rollback来恢复)。

3、对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。

4、truncatetable不能用于参与了索引视图的表。

三、drop

1、drop是DDL,会隐式提交,所以,不能回滚,不会触发触发器。

2、drop语句删除表结构及所有数据,并将表所占用的空间全部释放。

3、drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态。

 

 

 

 

double后面的分号在下个大括号外边

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            long[] arr = new long[n];
            for (int i = 0; i < n; i++) {
                arr[i] = scanner.nextLong();
            }
            demo1(arr);
            return;
        }
    }

    public static void demo1(long[] arr) {
        //奇数数量
        int oddSum = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 1) {
                oddSum++;
            }
        }
        //如果全是偶数或者全是奇数则无法排序,直接输出
        if (oddSum == 0 || oddSum == arr.length) {
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + " ");
            }
            return;
        }
        //如果至少存在一对奇偶数,则可以将序列全部从小到大排列
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while (t-- != 0) {
            int n = in.nextInt();
            long[] a = new long[n];
            for (int i = 0; i < n; i++) {
                a[i] = in.nextLong();
            }
            Arrays.sort(a);
            if (a[n-2] + a[n-3] > a[n-1]){ //只要只要最后二个和第一个加起来大于最后一个
                                                        //可以考虑将最后一个往前交换一位,这样都能满足条件
                System.out.println("YES");
            }else {
                System.out.println("NO");
            
        }
    }
}
}

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

            int num=sc.nextInt();
            int[] arr=new int[num+1];
            for(int i=1;i<arr.length;i++){
                arr[i]=sc.nextInt();
            }
            int n=sc.nextInt();
            //int[] a=new int[n];
            for(int i=0;i<n;i++){
                int index=sc.nextInt();
                //int count=func(arr,index)-1;
                double ans=func(arr,index) * 1.0 / num * 100;
                //System.out.printf("%.6f",ans);
                System.out.println(String.format("%.6f",ans));
                //System.out.println();

            }


    }

    private static int func(int[] arr, int nextInt) {
        int ount=0;
        for(int i=1;i<arr.length;i++){
            if(arr[i]<=arr[nextInt])
                ount++;
        }
        return --ount;
    }
}

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        sc.nextLine();
        for (int i = 0; i < T; i++) {
            String s1 = sc.nextLine();
            String s2 = sc.nextLine();
            System.out.println(solution(s1, s2));
        }
    }

    public static String solution (String s1, String s2) {
        ArrayList<String> list = new ArrayList<String>();
        String tmp = s1;
        while (tmp.length() > 1) {
            StringBuilder rev = new StringBuilder();
            for (int i = 0; i < tmp.length(); i++) {
                if (tmp.charAt(i) == '0')
                    rev.append('1');
                else
                    rev.append('0');
            }
            while (rev.length() > 1 && rev.charAt(0) == '0') {
                rev.deleteCharAt(0);
            }
            String l = rev.toString();
            tmp = l;
            if (!l.equals(""))
                list.add(l);
        }
        //如果出现了“1”,那么就需要额外加上一个“0”
        if (list.contains("1"))
            list.add("0");

        int index = 0;
        while (index < s2.length()) {
            int n = 0;
            if (index + s1.length() <= s2.length() && s2.substring(index, index + s1.length()).equals(s1))
                index += s1.length();
            else if (index < s2.length()) {
                for (int i = 0; i < list.size(); i++) {
                    String ss = list.get(i);
                    if (index + ss.length() <= s2.length() && s2.substring(index, index + ss.length()).equals(ss)) {
                        index += ss.length();
                        break;
                    }
                    else
                        n++;
                }
                if (n == list.size())
                    return "NO";
            }
            else
                return "NO";
        }
        return "YES";
    }
}

 

import java.util.Scanner;

/**
 * @author Mr.Zhao
 * @version 1.0
 * @Description:
 * @date 2020/1/5 10:48
 */
public class Test01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        int[] arr = new int[i];
        for (int i1 = 0; i1 < i; i1++) {
            int j = scanner.nextInt();
            arr[i1] = j;
        }
        for (int i1 = 0; i1 < arr.length; i1++) {
            int k = arr[i1] / 9;
            int k1 = arr[i1] % 9;
            StringBuilder stringBuilder = new StringBuilder();
            if (k1 != 0) {
                stringBuilder.append(k1);
            }
            for (int i2 = 0; i2 < k; i2++) {
                stringBuilder.append(9);
            }
            System.out.println(stringBuilder);
        }
    }
}

 

t=int(input())
for _ in range(t):
    a,b,c=map(int,input().split())
    maxnum=max(a,b,c)
    total=a+b+c
    if maxnum//2>=total-maxnum:
        if maxnum%2==0:
            print(maxnum//2)
        else:
            print((maxnum+1)//2)
    else:
        if total%3==0:
            print(total//3)
        elif total%3==1:
            print((total+2)//3)
        else:
            print((total+1)//3)

public class Main{
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int m = sc.nextInt();
    while(m-- > 0) {
        int n = sc.nextInt();
        int[] nums = new int[n];
        for(int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
        }
        System.out.println(longestSub(nums));
    }
}

public static int longestSub(int[] nums) {
    int i = 0, j = 1, max = 0, sum = nums[0],n = nums.length;
    while(j < n) {
        if(nums[j] >= sum) {
            sum += nums[j];
            max = Math.max(max, j-i+1);
            j++;
        } else {
            sum -= nums[i];
            i++;
        }
    }
    return max;
}
}

python


import sys
t = int(sys.stdin.readline())
def f():
    n = int(sys.stdin.readline())
    ls = list(map(int, sys.stdin.readline().split()))
    numsum = sum(ls)
    if numsum%2==1:
        print('NO')
        return
    target = int(numsum/2)
    start,end,num = 0,0,ls[0]
    while end<n and start<n:
        if num==target:
            print('YES')
            return
        elif num<target:
            if end==n-1:
                print('NO')
                return 
            end+=1
            num+=ls[end]
        elif num>target:
            num-=ls[start]
            start+=1
    print("NO")
 
for i in range(t):
    f()

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值