Tag: 程序设计

用JAVA写个简易的DNS域名查询工具

在加入GE之前没怎么写过JAVA程序, 其实JAVA挺好的, API多, 而且跨平台, 并且速度也不慢 (已经优化很多了). 最近用到了 iNetAddress 这个库, 写了一命令行工具, 可以简易根据域名查询 IP 地址. 代码也在 https://github.com/DoctorLai/DNSLookup import java.net.InetAddress; import java.net.UnknownHostException; public class DNSLookup { // https://helloacm.com/the-dns-lookup-tool-in-java-inetaddress/ public static void main(String …

把 MySQL 中的 MyISAM 表格转换成 InnoDB 的PHP小工具

我们都知道 MYSQL中常见表格的引擎有两种: 一是MyISAM 另一种是 InnoDB (当然还有Memory, CSV等其它系统自带的类型). MyISAM 是5.5.1版本前默认的数据库引擎类型, 而5.5.1版之后所有新创建的表格默认类型就是 InnoDB 了. MyISAM 的优点是压缩比较大, 同时是整个表格锁定, 所以不太适合经常插入删除的表格. MyISAM 还不支持 Transaction, 在之前, MyISAM 的一大优点是支持 全文检索 Full Text Indexing 不过现在 InnoDB 也可以了. …

C++ 编程练习题: 如何合并两个二叉树?

题意: 合并两个二叉树, 没有说不可以改变原来的二叉树. 合并的时候把结点求合. C/C++ 中二叉树的定义 在C或者C++中, 二叉树的定义可以很方便的用结构体来表征. 其中左右子树都是递归定义. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) …

C++编程练习题: 找出数组中所有重复的元素

题意, 有一个N大小的数组, 数组里的数字在1到N之间, 有些数字出现2次, 有些数字出现1次. 请找出所有出现2次的数字. 要求时间复杂度是O(N) 空间复杂度是 O(1). 如果不考虑空间复杂度, 那么我们可以开一个O(n) 的哈希表来记录数字是否已经出现过了, 在C++里我们可以用 unordered_set 集合来实现 O(1) 的查找和插入. class Solution { public: vector<int> findDuplicates(vector<int>& nums) { vector<int> r; unordered_set<int> hash; …

C++编程练习题: 找出字符串的所有大小小组合

题意: 给定一个字符串, 输出所有字符大小写都可以组成的字符串. 如: “ab1” 能成生 DFS 深度优先 – 递归 我们可以从字符串的开头递归的把当前字符给添加到最终的字符串中, 当当前字符是字母的时候, 就有两种可能了. 当到达字符串尾部的时候我们把当前字符串添加到结果数组中即可. class Solution { public: vector<string> letterCasePermutation(string S) { search("", S, 0, S.length() - 1); return …