`

java-求给定数字字符串去重后的最小整数

阅读更多

算法描述

  • 给定一个正整数,给出消除重复数字以后最小的整数,注意需要考虑长整数。
  • 输入示例:423234
  • 输出示例:234

算法实现

public class FindMinString extends Sort{

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String string = scanner.nextLine();
        int[] src = {string.charAt(0) - '0'};
        int[] dec = null;
        for(int i=0;i<string.length();i++){
        	int find = string.charAt(i) - '0';
	        int index = binarySearch(src, find,0, src.length - 1);
			if (index != -1) {
				System.out.println("index is :" + index + " value is :" + src[index]);
				continue;
			} else {
				dec = searchInsert(src, find);
				src = dec;
			}
        }
        printArray(src);
    }
    
    private static int[] searchInsert(int[] src, int i) {
		int left = 0;
		int right = src.length - 1;
		while (left <= right) {
			int middle = (right + left) / 2;
			if (src[middle] < i) {
				left = middle + 1;
			} else {
				right = middle - 1;
			}
		}
		int[] dec = Arrays.copyOf(src, src.length + 1);
		int decL = dec.length - 1;
		while (decL >= left) {
			if (decL == left) {
				dec[left] = i;
				break;
			}
			dec[decL] = dec[decL - 1];
			decL--;
		}
		return dec;
	}

	private static int binarySearch(int[] src, int i, int left, int right) {
		while (left <= right) {
			int middle = (right + left) / 2;
			if (src[middle] == i) {
				return middle;
			} else if (src[middle] < i) {
				left = middle + 1;
			} else {
				right = middle - 1;
			}
		}
		return -1;
	}
}

 

 

分享到:
评论

相关推荐

    coding-interview-in-java.pdf

    - 给定字符串a和b,需要找出字符串a重复多少次能够包含字符串b作为子串。这是一个涉及到重复和匹配的算法问题。 13. ContainerWithMostWater - 给定一个整数数组,找出两个索引,使得它们之间形成的容器能够容纳...

    java词汇大全

    - **最短公共父串(Shortest Common Superstring)**: 找到覆盖两个字符串的最短公共超串。 **编程词汇** - **A2A整合**: A2A可能是某种具体技术或方法的缩写,这里可能是指特定领域的集成技术。 - **抽象(Abstract)*...

    今日头条2018校园招聘笔试3.doc

    - 第一行是一个长度为 L 的字符串 S,表示操作序列。 - 第二行是一个整数 Q,表示查询次数。 - 接下来的 Q 行包含四个整数 N, M, X, Y,表示每个查询的矩形大小和初始位置。 示例: 输入: "uddl" 2 3 3 1 1 3 3 2 ...

    精选17道海量数量处理面试题!.pdf

    Trie树是一种字符串查找的数据结构,能高效地进行查询;Hash Map则用于存储key-value对,提供快速的查找和更新操作。 5. **外部排序与归并**: - 在第三题和第四题中,由于内存限制,数据需要在磁盘和内存之间来回...

    2021-2022计算机二级等级考试试题及答案No.3465.docx

    - **解释**: Access2000中的文本数据类型用于存储较短的文本字符串,最大长度为255个字符。 ### 10. VB数据类型中占用内存最少的类型 - **知识点**: 在VB中,占用内存最少的数据类型是**Byte**。 - **解释**: Byte...

    2021-2022计算机二级等级考试试题及答案No.11792.docx

    根据给定文件的信息,我们可以总结出以下相关的IT知识点: ### 1. HTML中的书签定义 在HTML中,为了创建书签(锚点),需要使用`&lt;a&gt;`标签结合`name`属性。正确的语法应该是:`&lt;a name="object_01"&gt;text&lt;/a&gt;`。这里...

Global site tag (gtag.js) - Google Analytics