每日一题之颠倒二进制位

颠倒二进制位

示例 1:

1
2
3
4
输入: 00000010100101000001111010011100
输出: 00111001011110000010100101000000
解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。

示例 2:

1
2
3
4
输入:11111111111111111111111111111101
输出:10111111111111111111111111111111
解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。
阅读全文
设计模式六之代理模式

代理模式

​ 为某个对象提供一个代理,从而控制这个代理的访问。代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代。代理类负责请求的预处理、过滤、将请求分配给委托类处理、以及委托类处理完请求的后续处理。

阅读全文
每日一题之从不订购的客户

从不订购的客户

某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

阅读全文
设计模式五之适配器模式

前言

​ 之前讲的四种模式都是创建型模式,现在开始讲结构型模式。何为结构型模式?结构型模式的核心作用, 是从程序结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。

适配器模式

适配器模式定义

​ 适配器模式,把一个类接口变化成客户端所期待的另一个类的接口,使原来因接口不匹配而无法一起工作的类能够一起工作。

阅读全文
每日一题之查找重复的电子邮件

查找重复的电子邮件

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:

1
2
3
4
5
6
7
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+

根据以上输入,你的查询应返回以下结果:

1
2
3
4
5
+---------+
| Email |
+---------+
| a@b.com |
+---------+

说明:所有电子邮箱都是小写字母。

阅读全文
Java中switch支持的数据类型

前言

总体来说,可以认为switchcase只支持int类型

阅读全文
设计模式四之原型模式

原型模式

​ 当我们需要构建一个与已经存在对象相似时,再通过new去产生一个新对象需要非常繁琐的数据准备或访问权限,而这时就可以用到原型模式,原型模式实现就是Java中的克隆技术,以某个对象为原型,复制出新的对象,显然新的对象具备原型对象相同的特点。原型模式优点是,效率高,可以直接复制,避免了重新执行构造方法过程步骤。
  原型模式中的复制类似于new,但不同于new。new创建新的对象属性采用的是默认值,而复制出的对象的属性和原型对象属性完全相同。并且复制出的新对象的改变不会影响原型对象。然后再根据需要修改复制出的对象的值。

阅读全文
每日一题之第二高的薪水

第二高的薪水

编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。

1
2
3
4
5
6
7
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
阅读全文
Algolia