762. 二进制表示中质数个计算置位【简单题】【每日一题】
思路:【官解方法二】
看到方法二人呆了,还能这么玩~
代码:
class Solution {
public int countPrimeSetBits(int left, int right) {
int ans = 0;
for (int i = left; i <= right; i++) {
if ((1 << Integer.bitCount(i) & 665772) != 0){
ans++;
}
}
return ans;
}
}
剑指 Offer 46. 把数字翻译成字符串【中等题】
思路:
代码:
class Solution {
public int translateNum(int num) {
String s = String.valueOf(num);
//f2 表示 f(i-2) 初值为1
//f1 表示 f(i-1) 初值为1
//f 表示 f(i) 初值为1
//动态转移方程:f = f2 + f1[条件判断成立则加f1,不成立则不加]
int f2 = 1,f1 = 1,f = 1,len = s.length();
for (int i = 1; i < len; i++) {
f2 = f1;//更新f(i-2) = f(i-1)
f1 = f;//更新f(i-1) = f
f = f1;//更新f(i)等于f(i-1)
String pre = s.substring(i-1,i+1);//取出当前i和前一位组成的2位数
//判断是否能组成新字符 即pre表示的数是否在[10,25]之间
if (pre.compareTo("25") <= 0 && pre.compareTo("10") >= 0){
f += f2;//f(i-2)贡献方案数,累加
}
}
return f;
}
}
1873. 计算特殊奖金【简单题】
代码:
# Write your MySQL query statement below
# select employee_id,
# if(employee_id % 2 != 0 && name not like 'M%',salary,0)
# as bonus
# from Employees
# order by employee_id;
select employee_id,
case
when employee_id % 2 = 1 && name not like 'M%' then salary
else 0
end bonus
from Employees
order by employee_id;
627. 变更性别【简单题】
代码:
# Write your MySQL query statement below
# update Salary set sex = if(sex = 'f','m','f');
update Salary set sex =
case
when sex = 'f' then 'm'
else 'f'
end;
196. 删除重复的电子邮箱【简单题】
# Please write a DELETE statement and DO NOT write a SELECT statement.
# Write your MySQL query statement below
DELETE p1 from Person p1,Person p2
where p1.email = p2.email && p1.id > p2.id;