Interview Common Sample Codes

1. Quick Sort:

int partition(int A[], int p, int r)
{
	int x = A[r];  // Pivot element
	int i = p - 1;  // Index of last element that not larger than pivot element
	for(int j = p; j < r; ++j)
	{
		if(A[j] <= x)
		{
			++i;
			exchange(A[i], A[j]);
		}
	}

	exchange(A[i+1], A[r]);
	return i+1;
}

void quickSort(int A[], int p, int r)
{
	if(p >= r)	return;
	int q = partition(A, p, r);
	quickSort(A, p, q - 1);
	quickSort(A, q + 1, r);
}

2. Search in Rotated Array:

class Solution {
    int comp(int A[], int s, int e, int target){
        if(s > e) return -1;
        if(s == e) return (A[s] == target ? s : -1);

        int mid = s + (e - s) / 2;

        if(A[mid] == target)
            return mid;
        else if(A[mid] > target){
            // if first part is not rotated
            if(A[mid] >= A[s]){
                if(target >= A[s])
                    return comp(A, s, mid-1, target);
                else
                    return comp(A, mid+1, e, target);
            }else{
                return comp(A, s, mid-1, target);
            }
        }else{
            // if first part is not rotated
            if(A[mid] >= A[s]){
                return comp(A, mid+1, e, target);
            }else{
                if(target <= A[e])
                    return comp(A, mid+1, e, target);
                else
                    return comp(A, s, mid-1, target);
            }
        }
    }

public:
    int search(int A[], int n, int target) {
        return comp(A, 0, n - 1, target);
    }
};

3. Maximum Subarray:

class Solution {
public:
    int maxSubArray(int A[], int n) {
        int dp = A[0];
        int end = dp;         

        for(int i = 1; i < n; ++i){
            end = end > 0 ? end + A[i] : A[i];
            dp = dp > end ? dp : end;
        }      

        return dp;
    }
};
时间: 2024-11-20 21:56:19

Interview Common Sample Codes的相关文章

InterView common question

1. 接口和抽象类的区别 http://kb.cnblogs.com/page/42159/ 2. DataSet和DataReader的区别 http://www.cnblogs.com/jiahaohk/articles/1546864.html 3.索引 http://www.2cto.com/database/201105/91731.html http://kb.cnblogs.com/page/44125/ 4. sql: 行转列,递归,删除重复行,group by having,

Oracle Install logs

oracle 11.2.0.4.0 INFO: Using paramFile: /home/oracle/softs/database/install/oraparam.ini INFO: INFO: INFO: Checking Temp space: must be greater than 120 MB. Actual 31314 MB Passed INFO: Checking swap space: must be greater than 150 MB. Actual 4094 M

Demystifying iOS Application Crash Logs

http://www.raywenderlich.com/23704/demystifying-ios-application-crash-logs This is a blog post by Soheil Moayedi Azarpour, an independent iOS developer. You can also find him on Google+. Have you ever had the following experience as an app developer?

外部服务的隔离及降级

本文的来源是之前的一次生产事故,当时由于某家医院的机房网络故障,造成整个某项业务的全部停止服务,也就是说其它医院虽说与平台的网络畅通,但是由于平台的资源全部被消耗,其它医院也不能再提供给患者提供任何服务.下图是用户.平台及医院的调用关系图: 我最近找了一些公共的开源框架,包扩大概的看了看apache commons和google guava工具包,都没有找到合适的工具,便花了两个晚上的时间,自己实现了一个简单的版本,源码可见于 https://github.com/mantuliu/distri

AndroidPageObjectTest_ByAllPossible.java

以下代码使用ApiDemos-debug.apk进行测试 //这个脚本用于演示PageFactory的功能:使用注解@AndroidFindAll定位元素.注解用法参考页面类代码. 1 package com.saucelabs.appium; 2 3 import io.appium.java_client.MobileElement; 4 import io.appium.java_client.android.AndroidDriver; 5 import io.appium.java_c

FBX SDK 从2012.1 到 2013.3 变化

==================================================== ============================== 译文                                   自述文件 Autodesk FBX SDK 2013.3,2012年9月11日 1.新功能和弃用功能------------------------------ 1.1新功能        *类FbxCameraManipulator已经改进,使FrameA

AndroidPageObjectTest_Simple.java

以下代码使用ApiDemos-debug.apk进行测试 //这个脚本用于演示PageFactory的功能:使用注解定位元素. 1 package com.saucelabs.appium; 2 3 import io.appium.java_client.MobileElement; 4 import io.appium.java_client.android.AndroidDriver; 5 import io.appium.java_client.pagefactory.AppiumFie

如何给对话框中的控件发送消息呢?Windows消息分类

以博文CTabCtrl中介绍的那样,给Tab添加子对话框来显示Tab内容.那么如果这个子对话框中含有个CTreeCtrl控件,有个Button控件,我想要模拟给这两个控件发送消息,该怎么办呢?直接把给控件的消息给控件容器(控件的父窗口)是没有用的.为什么呢?首先要明白windows的消息分类: Windows消息的分类 1. 标准消息(队列消息)除WM_COMMAND之外,所有以WM_开头的消息都是标准消息,如WM_MOUSEMOVE.WM_LBUTTONUP.WM_KEYDOWN.WM_C

JVM启动过程 类加载器

下图来自:http://blog.csdn.net/jiangwei0910410003/article/details/17733153 package com.test.jvm.common; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; /**