- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 两个整数相除
将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回 2147483647 。您在真实的面试中是否遇到过这个题? Yes样例给定被除数 = 100 ,除数 = 9,返回 11。采用位运算,每次class Solution {public: /** * @param dividend the dividend * @param div
2017-04-12 09:49:18
2208
原创 编辑距离
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符样例给出 work1="mart" 和 work2="karma"返回 3class Solution {public: /** * @param word1 & word2: Two string
2017-04-12 09:46:08
307
原创 寻找峰值
你给出一个整数数组(size为n),其具有以下特点: 相邻位置的数字是不同的 A[0] A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。注意事项数组可能包含多个峰值,只需找到其中的任何一个即可样例给出数组[1, 2, 1, 3, 4, 5, 7, 6]返回1,
2017-03-28 09:06:24
442
原创 组合
组给出两个整数n和k,返回从1......n中选出的k个数的组合。样例例如 n = 4 且 k = 2返回的解为:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]]按顺序来取数,如 n = 4 且 k = 2,先取1,再在2,3,4里面取一个数,1作为开始的取完后,将1抛弃,从2开始取,直到取完所有的。class So
2017-03-28 08:58:50
240
原创 动态规划(01背包问题)
首先要想办法求出状态转移方程,自然会想到在背包放a物品和不放a物品的背包价值需要做比较,用f(i,y)表示背包的总价值,i表示第i到n(物品总量)个物品,y表示此时背包的剩余容量,即需要求出max{f(i,y),f(i,y-wi)+pi)}, 此时y比如要大于等于wi。加上i为最后一个物品时的特殊情况,可以写出方程:f(n,y) =pn
2017-03-24 09:13:45
1381
原创 最长公共子序列
给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。说明最长公共子序列的定义:最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。https://en.wikipedia.org/wiki/Longest_com
2017-03-22 09:09:13
293
原创 两数组的交
返回两个数组的交样例nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].先排序,从nums1数组中取数判断时,若nums1[i] > nums2[j]才继续遍历nums2,并用一个k值记录nums2中比nums1[i-1]小的最大数的角标,下次判断nums[i]时nums2从k值开始取。class Solution {pu
2017-03-21 09:30:23
192
原创 归并排序
递归版template void merge(T *a, T *b, int left, int mid, int right){ int i = left, j = mid + 1, k = left; while (i <= mid && j <= right) { if (a[i] > a[j]) b[k++] = a[j++]; else b[k++] =
2017-03-21 09:27:56
221
原创 移动零
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序注意事项1.必须在原数组上操作2.最小化操作数样例给出 nums = [0, 1, 0, 3, 12], 调用函数之后, nums = [1, 3, 12, 0, 0].反着移动,将非0的数往前移动碰到i =0或遇到另一个非0数
2017-03-21 09:19:42
192
原创 二分法
递归class Solution {public: /** * @param A an integer array sorted in ascending order * @param target an integer * @return an integer */ int findPosition(vector& A, int ta
2017-03-20 09:15:08
246
原创 接雨水问题
解法一:先求出从左到右的最大值保存在数组right中,每一个元素的接水量就等于min(left,right)减去当前的值,循环一遍就能就出总接水量了。class Solution {public: /** * @param heights: a vector of integers * @return: a integer */ int trap
2017-03-19 17:16:23
401
原创 判断是否为丑数
class Solution {public: /** * @param num an integer * @return true if num is an ugly number or false */ bool isUgly(int num) { // Write your code here if (num =
2017-03-16 22:27:26
377
原创 判断是否是快乐数
class Solution {public: /** * @param n an integer * @return true if this is a happy number or false */ #include bool isHappy(int n) { // Write your code her
2017-03-16 22:24:37
1443
原创 用vtk画抛物面
主要运用vtk中vtkQuadric函数伪代码void ModleData::drawParaboloid(){ float radius = data[7]; float temp = -4 * data[8]; // data[7] 表示焦距 vtkSmartPointerquadric = vtkSmartPointer::New(); quadric->SetCoef
2017-03-16 22:20:10
611
1
原创 用vtk+Qt实现离散数据的体绘制
数据是三维矩阵保存其值,坐标表示位置以下是实现代码(头文件和main函数没有贴上去)#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeType,vtkRenderingOpenGL2)#define vtkRenderingVolume_AUTOINIT
2017-03-16 22:14:09
1450
原创 波束在自由空间传播快速算法(平面到平面)
瑞利-索末菲衍射积分公式被广泛的应用于这一问题的分析当中。但由于该公式计算过程中所涉及的巨大的计算量,瑞利-索末菲衍射积分可以理解为两个式子的卷积,可以利用先做FFT,再做IFFT来简化,以下是实现代码,用到了fftw库。#ifndef CALCUlATION_H#define CALCULATION_H#include#include#include "Tools/GEMS_M
2017-03-16 21:55:22
1526
原创 找一个数字中的单数
class Solution {public: /** * @param A: Array of integers. * return: The single number. */ int singleNumber(vector &A) { // write your code here if(A.size() == 0) {
2017-03-16 21:47:41
722
原创 判断是否为子树
class Solution {public: /** * @param T1, T2: The roots of binary tree. * @return: True if T2 is a subtree of T1, or false. */ bool isSubtree(TreeNode *T1, TreeNode *T2) {
2017-03-16 21:45:41
286
原创 基于Weiler-Atherton剪裁布尔运算openGL实现-2D
/** 实现二维平面的布尔运算* Union 并集 intersection 交集 Subtract 减*/#pragma once#ifndef BOOLEAN_H#define BOOLEAN_H#include #include #include #include #include #include "Point2.h"#include "Line.h"
2016-11-14 20:18:17
2976
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人