Hello 算法 1.0.0b4 Java版37 3.2. 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.3. 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.4. 字符编码 * 常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 31 元。他会很自然地完成以下思考: 1. 可选项是比 31 元面值更小的货币,包括 1 , 5 , 10 , 20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 = 11 完成找零,方案为 20 + 10 + 1 = 31 元。 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是「贪心算法」。 1. 初识算法 hello‑algo.com 9 Figure 1‑3. 货币找零过程 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用0 码力 | 342 页 | 27.39 MB | 1 年前3
Hello 算法 1.1.0 Java版52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程0 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.0.0b5 Java版50 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 hello‑algo.com 12 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将0 码力 | 376 页 | 30.69 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 字符编码 * . 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 31 元面值更小的货币,包括 1 元、5 元、10 元、20 元。 2. 从可选项中拿出最大的 20 元,剩余 31 − 20 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 第 1 章 初识算法 www.hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0b2 Java版nums , 其中 nums 由从 1 至 ? 的数字组成,但元素顺序是随机打乱的;算法的任务是返回元素 1 的索引。我们可以得 出以下结论: ‧ 当 nums = [?, ?, ..., 1],即当末尾元素是 1 时,则需完整遍历数组,此时达到 最差时间复杂度 ?(?) ; ‧ 当 nums = [1, ?, ?, ...] ,即当首个数字为 1 时,无论数组多长都不需要继续遍历,此时达到 res = new int[n]; for (int i = 0; i < n; i++) { res[i] = nums[i]; } return res; } /* 查找数组 nums 中数字 1 所在索引 */ int findOne(int[] nums) { for (int i = 0; i < nums.length; i++) { // 当元素 1 在数组头部时,达到最佳时间复杂度 满二叉树产生的指数阶空间复杂度 对数阶 ?(log ?) 对数阶常见于分治算法、数据类型转换等。 例如「归并排序」,长度为 ? 的数组可以形成高度为 log ? 的递归树,因此空间复杂度为 ?(log ?) 。 再例如「数字转化为字符串」,输入任意正整数 ? ,它的位数为 log10 ? ,即对应字符串长度为 log10 ? ,因 此空间复杂度为 ?(log10 ?) = ?(log ?) 。 2.4. 权衡时间与空间0 码力 | 197 页 | 15.72 MB | 1 年前3
Hello 算法 1.0.0b1 Java版nums , 其中 nums 由从 1 至 ? 的数字组成,但元素顺序是随机打乱的;算法的任务是返回元素 1 的索引。我们可以得 出以下结论: ‧ 当 nums = [?, ?, ..., 1],即当末尾元素是 1 时,则需完整遍历数组,此时达到 最差时间复杂度 ?(?) ; ‧ 当 nums = [1, ?, ?, ...] ,即当首个数字为 1 时,无论数组多长都不需要继续遍历,此时达到 res = new int[n]; for (int i = 0; i < n; i++) { res[i] = nums[i]; } return res; } /* 查找数组 nums 中数字 1 所在索引 */ int findOne(int[] nums) { for (int i = 0; i < nums.length; i++) { // 当元素 1 在数组头部时,达到最佳时间复杂度 满二叉树产生的指数阶空间复杂度 对数阶 ?(log ?) 对数阶常见于分治算法、数据类型转换等。 例如「归并排序」,长度为 ? 的数组可以形成高度为 log ? 的递归树,因此空间复杂度为 ?(log ?) 。 再例如「数字转化为字符串」,输入任意正整数 ? ,它的位数为 log10 ? ,即对应字符串长度为 log10 ? ,因 此空间复杂度为 ?(log10 ?) = ?(log ?) 。 2.4. 权衡时间与空间0 码力 | 186 页 | 14.71 MB | 1 年前3
Java 应用与开发 - Java 语言基础与流程控制数据类型 O 逻辑型 boolean 布尔型 ▶ 只有 true(“真”)和 false(“假”)两个取值。 ▶ 占 1 个字节,默认取值为 false。 ▶ true 和 false 不能转换成数字表示形式。 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 数据类型 O 字符型 ▶ 字符型数据类型用来存储单个字符,采用的是 Unicode 语句 分支结构 循环结构 关键字与标识符 O 标识符 用来表示变量名、类名、方法名、数组名和文件名的有效字符序 列。规定如下: ▶ 可以由字母、数字、下划线 (_)、美元符号 ($) 组合而成。 ▶ 必须以字母、下划线或美元符号开头,不能以数字开头。 ▶ 关键字不能当标识符使用。 ▶ 区分大小写。 编码习惯:驼峰命名,类名首字母大写,变量、方法及对象首字 母小写。 大纲 数据类型 常量和变量 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 从键盘获得输入 由键盘输入的数据,不管是文字还是数字,Java 皆视为字符串, 若是要由键盘输入获得数字则必须再经过类型转换。 CODE ± 获得键盘输入字符串并转换为数字 1 import java.io.*; 2 public class MyClass { 3 public static void0 码力 | 37 页 | 685.82 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东的特性如下: • 布尔型数据只有 true(真)和 false(假)两个取值。 • 布尔型数据存储占 1 个字节,默认取值为 false。 • 布尔型数据 true 和 false 不能转换成数字表示形式。 字符型 • 字符型数据类型用来存储单个字符,采用的是 Unicode 字符集编码方案1。 • 字符声明用单引号表示单个字符。 • 字符型数据可以转化为整型。 示例代码:字符数据类型示例 保留字)如表2.3所示。 标识符是用来表示变量名、类名、方法名、数组名和文件名的有效字符序列。Java 语言对标识符的规定如下: • 可以由字母、数字、下划线 (_)、美元符号 ($) 组合而成。 • 必须以字母、下划线或美元符号开头,不能以数字开头。 • 关键字不能当标识符使用。 • 区分大小写。 建议遵循驼峰命名,类名首字母大写,变量、方法及对象首字母小写的编码习惯。 . . . 强制类型转换运算符(类型)、方法调用运算符()等 图 2.1 Java 运算符 2.1.6 从键盘获得输入 由键盘输入的数据,不管是文字还是数字,Java 皆视为字符串,若是要由键盘输 入获得数字则必须再经过类型转换。 示例代码:获得键盘输入字符串并转换为数字 1 import java.io .*; . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
跟我学Shiro - 张开涛可。 一个主体可以有多个 principals,但只有一个 Primary principals,一般是用户名/密码/手机号。 credentials:证明/凭证,即只有主体知道的安全值,如密码/数字证书等。 最常见的 principals 和 credentials 组合就是用户名/密码了。接下来先进行一个基本的身份认 证。 另外两个相关的概念是之前提到的 Subject 及 Realm,分别是主体及验证主体的数据源。 iteye.com/ 117 第十四章 SSL 对于 SSL 的支持,Shiro 只是判断当前 url 是否需要 SSL 登录,如果需要自动重定向到 https 进行访问。 首先生成数字证书,生成证书到 D:\localhost.keystore 使 用 JDK 的 keytool 命 令 , 生 成 证 书 ( 包 含 证 书 / 公 钥 / 私 钥 ) 到 D:\localhost 提交给服务器来验证 ticket 是否有效;如果有效服务器端将返回用户 身份; 5、客户端可以再根据这个用户身份获取如当前系统用户/角色/权限信息。 本章使用了和《第十四章 SSL》一样的数字证书。 服务器端 我们使用了 Jasig CAS 服务器 v4.0.0-RC3 版本,可以到其官方的 github 下载: https://github.com/Jasig/cas/tree/v40 码力 | 219 页 | 4.16 MB | 10 月前3
共 17 条
- 1
- 2













