- 博客(20)
- 收藏
- 关注
原创 剑指Offer选题列表
题目来源于何海涛的《剑指Offer》。版权归其所有。题目略有删减,筛选出个人觉得比较适合面试的题目。 3. 二维数组中的查找 【Medium】 https://blog.csdn.net/leel0330/article/details/79786198 6. 根据树的遍历重建二叉树【Medium】 https://blog.csdn.net/leel0330/art...
2018-04-21 19:18:40 320
原创 Java内存模型
衡量一个服务性能的高低好坏,每秒事务处理数(TPS)是最重要的指标之一,它代表着一秒内服务端平均能响应的请求总数,而TPS值与程序的并发能力又有非常密切的关系。 Java虚拟机规范中试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。 Java内存规范规定了所有的变量都存储在主内存中,每条线程都还有自己的工作内存...
2018-04-28 10:15:27 174
原创 Java垃圾回收
为什么要了解GC和内存分配? 因为当排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们需要对这些技术实施必要的监控和调节。 Java堆和方法区不一样,一个接口中的多个实现类需要的内存不一样,一个方法中的多个分支需要的内存也不一样,我们只有在程序处于运行期间才能知道会创建哪些对象,这部分内存的分配和回收是动态的,垃圾收集器所关注的就是这部分内存。 Java语...
2018-04-28 10:15:16 113
原创 二分查找
二分查找的前提是数组有序,具体实现为: def binary_search(data, target): left, right = 0, len(data) - 1 while left <= right: mid = left + (right - left + 1) / 2 if data[mid] == target: ...
2018-04-24 09:52:06 92
原创 排列问题题解
1. 无重复元素的排列 def permutation_without_repeated_element(data): res, item = [], [] used = [False for _ in xrange(len(data))] helper(data, res, item, used) return res def helper(data, ...
2018-04-23 18:45:25 223
原创 快速排序
平均时间复杂度为O(nlogn),非稳定排序。实现如下: def quick_sort(data): res = [val for val in data] print res quick_sort_imp(res, 0, len(data) - 1) return res def quick_sort_imp(data, start, end): ...
2018-04-23 13:20:01 138
原创 数值的整数次方
题目 实现函数power(base, exponent),求base的exponent次方,不能使用库函数。 Python题解 def power(base, exponent): if exponent == 0: return 1 if exponent == 1: return base res = power(base,...
2018-04-23 09:47:25 118
原创 连续子数组的最大和
题目 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 Python题解 def find_greatest_subarray(arr): if arr is None or len(arr) == 0: return 0 sum = arr[0] max_n...
2018-04-23 09:46:57 111
原创 数字在排序数组中出现的次数
题目 统计一个数字在排序数组中出现的次数,例如输入排序数组[1, 2, 3, 3, 3, 3, 4, 5],由于3出现了4次,所以输出4。 Python题解 def get_first_k(data, k, start, end): if start > end: return -1 middle_idx = (start + end) / 2 ...
2018-04-22 20:23:11 107
原创 旋转数组的最小数字
题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。如【3, 4, 5,1,2】为【1, 2, 3, 4, 5】的一个旋转,求数组的最小值。 Python题解 def min_num_in_rotated_arr(arr): index_1 = 0 index_2 = len(arr) - ...
2018-04-22 20:22:17 151
原创 反转链表
题目 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 Python题解 def reverse_list(head): q = None p = head reverse_head = None while p: r = p.next if r is None: reverse_hea...
2018-04-22 17:34:51 124
原创 数组中出现次数超过一半的数字
题目 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如[1, 2, 3, 2, 2, 2, 5, 4, 2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 Python题解 def partition(data, start, end): left, right = start, end pivot = data[left] ...
2018-04-22 17:33:14 109
原创 数组中只出现一次的数字
题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请在时间复杂度为O(n),空间复杂度为O(1)的情况下,找出这两个数字。 Python题解 def find_first_bit_1(num): index_1 = 0 while num & 1 == 0: num = num >> 1 index_1 ...
2018-04-22 16:41:37 134
原创 和为s的两个数字&和为s 的连续正数序列
题目1 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对,输出所有对。 Python题解 def find_num_with_sum(data, sum): hash_set = set() res = [] for idx, num in enumerate(data): another_num = ...
2018-04-22 16:41:00 136
原创 两个链表的第一个公共节点
题目 输入两个链表,找出它们的第一个公共节点。 Python题解 def get_list_len(head): list_len = 0 while head is not None: list_len += 1 head = head.next return list_len def find_first_common_...
2018-04-22 15:18:39 172
原创 二进制中1的个数
题目 实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如9的二进制是1001,有2位是1。因此输入9,该函数输出2。 Python题解 def num_of_1_in_binary(n): cnt = 0 while n: cnt += 1 n = n & (n - 1) return cnt...
2018-04-22 15:17:21 293
原创 二维数组中的查找
题目 在一个二维数组中,每一行都是从左到右递增,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断该数组是否包含该整数。 Python题解 #encoding=utf-8 def find_num_in_matrix(matrix, rows, cols, target): found = False if matrix is...
2018-04-22 14:20:56 167
原创 根据树的遍历重建二叉树
题目 根据前序遍历和中序遍历重建二叉树 根据中序遍历和后序遍历重建二叉树 Python题解 1. def build_tree(preorder, inorder): map = {} for idx, item in enumerate(inorder): map[item] = idx return helper(preorder, ...
2018-04-21 19:17:16 232
原创 MySQLdb使用指南
0. 引入MySQLdb import MySQLdb 1. 创建mysql连接 db = MySQLdb.Connect(host='localhost', port=3306, user='root', passwd='root', db = 'test') 参数根据你的配置来,这里以loc...
2018-04-16 14:44:25 448
原创 Mysql事务的那些事儿
事务会把数据库从一种一致状态转换为另一种一致状态,在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存。 事务的四个性质–ACID(原子性、一致性、隔离性、持久性)。 原子性 整个数据库事务是不可分割的工作单位。 一致性 事务将数据库从一种状态转变为下一种一致的状态。 隔离性 一个事务的影响在该事务提交前对其他事务都不可见。 持久性 ...
2018-04-11 12:55:36 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人