数组与SQL-第5天

LeetCode

  • 题目: 加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。翻译过来就是模拟一个正整数加一的情况,只不过把正整数用数组表示。

  • 解题思路

①数组最后一位加一

②考虑最后一位加一之后的值在1-9之间的情况

③考虑最后一位加一之后的值等于10的情况,锋十进一

④考虑数组溢出的情况,[9,9]+1==>[1,0,0]

知识点】for,if else,new int[]

  •  代码
	public static void main(String[] args) {
		int[] nums = {9,9,9};
		nums=plusOne(nums);
		System.out.println(Arrays.toString(nums));
	}

	public static int[] plusOne(int[] digits) {
        //最后一位加一
		digits[digits.length-1]+=1;
		for(int i=digits.length-1;i>=0;i--) {
            //锋十进一
			if(digits[i]>=10) {
				digits[i]%=10;
				if(i-1>=0) {
					digits[i-1]+=1;
				}else {
					int[] temp=new int[digits.length+1];
					for(int j=digits.length-1;j>=0;j--) {
						temp[j+1]=digits[j];
					}
					temp[0]=1;
					digits=temp;
				}
			}else {
                //没满10,结束循环
				break;
			}
		}
		return digits;
    }

nowcoder

  • 题目:构造一个触发器audit_log

构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。

drop table if exists audit;
drop table if exists employees_test;

CREATE TABLE employees_test(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);
CREATE TABLE audit(
    EMP_no INT NOT NULL,
    NAME TEXT NOT NULL
);

知识点

①创建触发器

create trigger triggerName       
    after/before/        // 触发时间 trigger_time
    insert/update/delete // 监视事件 trigger_event
    on table_name        // 监视地点 table
    for each row         // 这句话在mysql中是固定的
    begin
    sql语句(insert/update/delete);             // 触发事件  trigger_stmt 注意这里要有分号 
    end;
  • 代码
create trigger audit_log 
after insert on employees_test
for each row
begin 
    insert into audit values(new.id,new.name);
end

猜你喜欢

转载自blog.csdn.net/weixin_46899412/article/details/123629466