本文共 1757 字,大约阅读时间需要 5 分钟。
package insertsearch;import java.util.ArrayList;import java.util.List;public class InsertSearch { public static void main(String[] args) { int[] arr = { 1, 4, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19}; System.out.println(insertSearch(arr, 0, arr.length - 1, 0)); } public static ListinsertSearch(int[] arr, int left, int right, int searchVal) { int mid = left + (searchVal - arr[left]) / (arr[right] - arr[left]) * (right - left); if (left > right || searchVal > arr[right - 1] || searchVal < arr[left]) { return new ArrayList (); } if (arr[mid] < searchVal) { return insertSearch(arr, mid + 1, right, searchVal); } else if (arr[mid] > searchVal) { return insertSearch(arr, left, mid - 1, searchVal); } else { List list = new ArrayList<>(); int temp = mid - 1; while (arr[temp] == arr[mid] && temp >= 0) { list.add(temp); temp--; } list.add(mid); temp = mid + 1; while (arr[temp] == arr[mid] && temp <= right) { list.add(temp); temp++; } return list; } }}
分析与总结:
转载地址:http://yqgpb.baihongyu.com/