【力扣算法】6-Z字形变换

题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【力扣算法】7-整数反转

题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 题解 解决方案 方法:弹出和推入数字 & 溢出前进行检查 思路 我们可以一次构建反转整数的一位数字。在这样做的时候,我们
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【力扣算法】8-字符串转换整数(atoi)

题目 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【笔记】《java编程思想(第四版)》第5章-初始化与清理

第5章 初始化与清理 随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。 **初始化和清理(cleanup)**正是涉及安全的两个问题。 C++引入了**构造器(constructor)**的概念,这是一个在创建对象时被自动调用的特殊方法。Java中也采用了构造器,并额外提供了“垃圾回收器”。对于不再使用的内存资源,垃圾回收器能自动将其释放。 5.1 用构造器确保初始化 如何命名这个初始化方法。有两个问题:第一,所取的名字都可能与类的某个成员名称相冲突;第二,调用构造
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【笔记】《java编程思想(第四版)》第6章-访问权限控制

第6章 访问权限控制 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。 如果你把一个代码段放到了某个位置,等过一会儿回头再看时,有可能会发现有更好的方式去实现相同的功能。这正是重构的原动力之一,重构即重写代码,以使得它更可读、更易理解,并因此而更具可维护性。 但你想改变改变代码,而消费者(客户端程序员)需要你的代码在某些方面保持不变。因此你想改变代码,而他们却想让代码保持不变。由此而产生了在面向对象设计中需要考虑的一个基本问题:“如何把变动的事物与保持不变的事物区分开来”。 这对类库(
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【笔记】《Java核心技术》卷1-第1章-Java程序设计概述

第1章 Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 简单性 2)面向对象 3)网络技能(Network-Savvy) 4)健壮性 5)安全性 6)体系结构中立 7)可移植性 8)解释型 9)高性能 10)多线程 11)动态性 1.2.1 简单性 Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等。 如果已经习惯于使用可视化的编程环境(例如Visual Basic),你就不会觉得Ja
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【笔记】《Java核心技术》卷1-第2章-Java程序设计环境

第2章 Java程序设计环境 2.1 安装Java开发工具箱 2.1.1 下载JDK Java术语 术语名 缩写 解释 Java Development Kit JDK 编写Java程序的程序员使用的软件 Java Runtime Environment JRE 运行Java程序的用户使用的软件 Standard Edition SE 用于桌面或简单的服务器应用的Java平台 Enterprise Edition EE 用于复杂的服务器应用的Java平台 Micro Edition ME 用于
分类: 其他 发布时间: 04-20 22:01 阅读次数: 0

【笔记】《Java核心技术》卷1-第3章-Java的基本程序设计结构

第3章 Java的基本程序设计结构 3.1 一个简单的Java应用程序 大小写敏感 访问修饰符(access modifier) 第五章介绍 第四章介绍Java类。Java应用程序中的全部内容都必须放置在类中。 根据Java语言规范,main方法必须声明为public C++注释:Java中所有函数都属于某个类的方法(标准术语称其为方法,而不是成员函数)。因此Java中的main方法必须有一个外壳类。读者有可能对C++中的静态成员函数(static member functions)十分熟悉。
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【笔记】《Java核心技术》卷1-第4章-对象与类

第4章 对象与类 4.1 面向对象程序设计概述 4.1.1 类 类(class) 构造(construct)对象的过程称为创建类的实例(instance) 封装(encapsulation,有时称为数据隐藏) 实例域(instance field): 对象中的数据 方法(method) 每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state)。 实现封装的关键在于绝对不能让类中的方法直接访问其他类的实例域。程序仅通过对像的方法与对象数据进行交互。“黑盒”
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】9-回文数

题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 进阶: 你能不将整数转为字符串来解决这个问题吗? 题解 解决方案 方法:反转一半数字 思路 映入脑海的
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】10-正则表达式匹配

题目 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符。 '*' 匹配零个或多个前面的元素。 匹配应该覆盖整个字符串 (s) ,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配 "aa" 整个字符串。 示例 2: 输入: s
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】11-盛最多水的容器

题目 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 **说明:**你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 示例: 输入: [1,8,6,2,5,4,8,3,7] 输出
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】12-整数转罗马数字

题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V +
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】13-罗马数字转整数

题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V +
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】14-最长公共前缀

题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 题解 解决方案 方法一:水平扫描法 思路 首先,我们将描述一种查找一组字符串的最长公共前缀 LCP(S1…Sn)LCP(S_1 \ldots S_n)
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

【力扣算法】15-三数之和

题目 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 *a,b,c ,*使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 **注意:**答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 题解 无官方题解 自己一开始双指针设计的不正确,编成两边a、c是指针,中间b遍历的方式,发现思路不正确。因
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

CCF-201503-1-图像旋转(C++)

试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述   旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。   计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式   输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。   接下来n行每行包含m个整数,表示输入的图像。 输出格式   输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

CCF-201409-1-相邻数对(C++)

试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式   输入的第一行包含一个整数n,表示给定整数的个数。   第二行包含所给定的n个整数。 输出格式   输出一个整数,表示值正好相差1的数对的个数。 样例输入 6 10 2 6 3 7 8 样例输出 3 样例说明   值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。 评测用例
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

CCF-201403-1-相反数(C++)

试题编号: 201403-1 试题名称: 相反数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。 输入格式   第一行包含一个正整数 N。(1 ≤ N ≤ 500)。   第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。 输出格式   只输出一个整数,即这 N 个数中包含多少对相反数。 样例输入 5 1 2 3 -1
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0

CCF-201312-1-出现次数最多的数(C++)

试题编号: 201312-1 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式   输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。   输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式   输出这n个次数中出现次数最多的数。如果
分类: 其他 发布时间: 04-20 22:00 阅读次数: 0