求出A到B的最小步数 给定象棋盘,以及位置A和B, 求出从A到B的最小步数 代码: #include <cstdio> #include <iostream> #include <string.h> using namespace std; #define MAX 1000 //八个方向 ][] = { { , }, { , - }, { -, }, { -, - }, { -, - }, { -, }, { , - }, { , } }; int R, C; int…
今天遇到一个需求,需要计算label中文字的行数.想了好久也没想到好的解决方法,就在网上找了下.结果发现一篇文章是讲这个的.这部分代码不但能够求出一个label中文字行数,更厉害的是能够求出每一行的内容是什么: 代码如下. #import <CoreText/CoreText.h> - (NSArray *)getLinesArrayOfStringInLabel:(UILabel *)label{ NSString *text = [label text]; UIFont *font = […
function cc.exports.VerticalVector(vec)--求出两个垂直向量 local result = {} result[1] = cc.p(vec.y/vec.x,-1)--向下方向 result[2] = cc.p(-vec.y/vec.x,1)--向上方向 return result end…
在我们在项目的时候,可能出现这样的一种情况,有一个开始时间和一个结束时间,而这两个时间用$('#StartTime').val(); 取出来的时候又是datetime 类型,我们需要求这个时间中的间隔天数这个时候我们应该怎么求呢? var startDay =$("#Date").val(); var endDay =$("#EDate").val(); //间隔天数 var startTime = new Date(Date.parse(startDay.repl…
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个.建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿,m为10000). 优化的方法:可以把…
海量数据中找出前k大数(topk问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个.建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿…
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2524    Accepted Submission(s): 888 Problem Description Marica is very angry with Mirko because he found a new gi…
防御性编程习惯 程序员在编写代码的时候,预料有可能出现问题的地方或者点,然后为这些隐患提前制定预防方案或者措施,比如数据库发生异常之后的回滚,打开某些资源之前,判断图片是否存在,网络断开之后的重连次数或者是否连接备用网络,除法运算中的除数问题,函数或者类在接受数据的时候的过滤情况,比如如果输入一个指针参数,是否需要判断是不是空指针?输入一个字符串参数,是否需要判断字符串空否……总的来说就是防止出现不可预见的事情,设计出鲁棒性的代码. 看下面的例子 输入一个链表,输出链表中倒数第 m 个结点额内容…
主要掌握String中的方法 char[] toCharArray()           将此字符串转换为一个新的字符数组. int indexOf(String str)           返回指定子字符串在此字符串中第一次出现处的索引. int lastIndexOf(String str)           返回指定子字符串在此字符串中最右边出现处的索引 集合List和set的区别 List中可以出现重复的元素,Set中不能出现重复的元素 集合遍历: List遍历 Iterator<…
//输入一组整数.求出这组数字子序列和中最大值 #include <stdio.h> int MAxSum(int arr[],int len) { int maxsum = 0; int i; int j; for (i = 0; i < len; i++) { int thissum = 0; for (j = i; j < len; j++) { thissum += arr[j]; if (thissum>maxsum) maxsum = thissum; } } r…
题目:以尽量高的效率求出一个乱序数组中按数值顺序的第k 的元素值 思路:这里很容易想到直接排序然后顺序查找,可以使用效率较高的快排,但是它的时间复杂度是O(nlgn),我们这里可以用一种简便的方法,不一定需要排序,使用快速排序中双向分区的扫描方法,这里使用的是优化过后的三点中值法,具体思想一样,只是主元的取法不一样.然后扫描出主元下标,然后根据主元的值将数组划分成一半大,一半小.然后再根据主元下标与k进行比较,如果相等,说明主元就是我们要找的数,如果大于k,说明k所代表的值在小的那边,继续向小的…
package org.xiu68.exp.exp10; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; public class Exp10_2 { //实现Ford-Fulkerson算法,求出给定图中从源点s到汇点t的最大流,并输出最小割. public static void main(String[] args) { // TODO Auto-generated meth…
//求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和 #include <stdio.h> int main() { int sum=0; int max,min; int max1,max2;//记录最大值的坐标 int min1,min2;//记录最小值的坐标 int i,j; int a[4][4]; //为数组赋值 for(i=0;i<4;i++) { for(j=0;j<4;j++) { scanf("%d",&…
输入n个整数,如何求出其中最小的k个数? 解法1. 当然最直观的思路是将数组排序,然后就可以找出其中最小的k个数了,时间复杂度以快速排序为例,是O(nlogn): 解法2. 借助划分(Partition)的思路,一次划分可以把枢轴使得枢轴左边的元素都比枢轴小,枢轴右边的元素都比枢轴大(可以参考快速排序及STL中的sort算法).那么可以基于数组的第k个数字来调整,使得比第k个数字小的数字都位于数组的左边,使得比第k个数字大的数字都位于数组的右边.那么调整完毕后,数组中左边的k个数字就是最小的k个…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
package com.swift; import java.util.Arrays; public class ArrayTest { public static void main(String[] args) { /* * 定义一个int类型的数组,数组中元素为{5,7,3,9,4}. * 求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出“最小值为偶数”,如果不是偶数则输出“最小值为奇数”.打印如下 */ int arr[]= {5,7,3,9,4}; Arrays.sort(…
先看看这个题目:某整形数组中除了两个单身整数外, 其余的整数都是成对出现的, 利用C代码求出这两个单身整数. 要求: 时间复杂度o(n), 空间复杂度o(1). 我们先用最傻瓜的方式来做吧: #include <iostream> using namespace std; // 时间复杂度为o(n^2), 空间复杂度为o(1), 不符合要求 void findSoleNumbers(int a[], int n, int &e1, int &e2) { int i = 0; i…
//函数fun功能是将带头节点的单向链表结点域中的数据从小到大排序. //相当于数组的冒泡排序. #include <stdio.h> #include <stdlib.h> #define N 6 typedef struct node { int data; struct node *next; } NODE; void fun(NODE *h) { NODE *p, *q; int t; /**********found**********/ p = h->next;/…
其实很简单 Ruby的Array类自带了min方法可以求出最小值,然后调用Array的index方法传入元素值就可以求出下标 a = [1, 2, 3, 4, 5, 6] theMin = a.min #=> 1 theIndex = a.index(a.min) #=> 0…
问题如下: 问题 B: Rails 时间限制: Sec 内存限制: MB 提交: 解决: [提交][状态][讨论版] 题目描述 There is a famous railway station in PopPush City. Country there is incredibly hilly. The station was built in last century. Unfortunately, funds were extremely limited that time. It was…
PS:这篇是之前本来就想发的但是一直没时间写,加上今天做了京东的题,结果代码名就命名为jingdong了……懒得改代码名重新跑一遍结果了=.= 暴力法去做就是遍历每个点,判断它是不是“最大点”.判断过程则是又遍历一遍,看看是否存在其他点在它右上方,若存在则不是最大点.O(N^2) 但是这样就会有很多不必要的计算,举个例子(这里暂且当坐标都是int),若存在一个最大点(x0,y0),那么所有在它左下角的点都不用考虑了. 另外,对于(x0,y0),只需要查找在它右边(x>x0)的点是否在它上面.如果…
E. Anton and Permutation time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output Anton likes permutations, especially he likes to permute their elements. Note that a permutation of n elements is a…
(点击此处查看原题) 题意 给出一个有n个结点,m条边的DAG图,每个点都有权值,每条路径(注意不是边)的权值为其经过的结点的权值之和,每条路径总是从入度为0的点开始,直至出度为0的点,问所有路径中权值最大者为多少,如下图,加粗的为权值最大者: 解题思路 这是在一个无起点.终点的图中的求最长路的问题,因此无法像一般的最长路问题那样求解. 首先,因为图中只存在点权,为了方便,我们一般将点权转化为边权:取每条边的权值为其终点的权值,将点权转化为边权. 然后,由于我们每条路径都是以入度为0的点开始,以…
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10 001st prime number? 译文: 观察第一组质数可知,第6位质数为13,那么第10001位质数是多少呢? ============================ 第一次code: import java.util.ArrayList; import j…
<编程之美>183页,问题2.14——求子数组的字数组之和的最大值.(整数数组) 我开始以为可以从数组中随意抽调元素组成子数组,于是就有了一种想法,把最大的元素抽出来,判断是大于0还是小于等于0,如果大于0就对除了这个最大值外剩下的数组部分进行递归: using System; using System.Collections.Generic; using System.Linq; namespace MaxSumSubArray { class Program { static void M…
NSDateFormatter 根据时间戳求出时间 - (void)detailWithStyle:(NSString*)style time:(NSInteger)time { // NSString *min = [NSString stringWithFormat:@"%d",(int)time / 60]; //得到分钟 NSString*min = [NSString stringWithFormat:@"%ld",time /60]; //得到秒 NSS…
假设有10个三维的点,使用数组存放它们有四种常见的形式: ①一个二维数组,数组的类型是CV32FC1,有n行,3列(n×3) ②类似①,也可以用一个3行n列(3×n)的二维数组 ③④用一个n行1列(n×1)的数组或者1行n列(1×n)的数组,数组的类型是CV32FC3 四种形式的内存布局如下图: <学习OpenCV>中给出的计算给定点的公式如下: 说明: 其中row col channel分别表示行号 列号 和通道号: 这些都已从0开始计算,具体如下: 通道号channel=所在的维数(X或Y…
内容: 求出2-100之间的所有质数(素数) 输入说明: 无 输出说明: 一行一个素数 /* 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数(不包括0)整除的数. */ #include <stdio.h> int main(void) { int num, i; ; ; num <= ; num++) { ; i <= num; i++) { ) count++; } ) { printf("%d\n", num); } cou…
题意 A从1要追在N的 B 只能走最短的路 问B最少切断多少条路可以让A不能过来 问B最多切断多少条路A还是能过来 对于1 求出1到N的所有最短路的路径,对其求最小割 对于2 求出长度最小的最短路即可 如何求所有最短路呢  利用这个 void dfs(int s,int ans) { if(s==N) { ANS2=min(ans,ANS2); return ; } for(EDGE *p=Graph[s].first;p;p=p->next) { if(dist[s]+p->w==dist[…
MATLAB中求矩阵非零元的坐标: 方法1: index=find(a); [i,j]=ind2sub(size(a),index); disp([i,j]) 方法2: [i,j]=find(a>0|a<0) %列出所有非零元的坐标 [i,j]=find(a==k) %找出等于k值的矩阵元素的坐标 所用函数简介: IND2SUB Multiple subscripts from linear index. IND2SUB is used to determine the equivalent…