This paper presents a new algorithm for the K Shortest Paths Problem which develops initial K shortest paths, and repeat to expose hidden shortest paths with dual approach and to replace the longest path in the present K paths. The initial solution comprises K shortest paths among shortest paths to traverse each arc in a Double Shortest Arborescence which is made from bidirectional Dijkstra algorithm. When a crossing node that has two or more inward arcs is found at least three times by turns in this K shortest paths, there may be some hidden paths which are shorter than present K-th path. To expose a hidden shortest path, one inward arc to this crossing node is chosen by means of minimum detouring distance calculated with dual variables, and then the hidden shortest path is exposed with joining a detouring subpath from source to this inward arc and a spur of a feasible path from this crossing node to sink. If this exposed path is shorter than the K-th path, the exposed path replaces the K-th path. This algorithm requires worst case time complexity of O(Kn2), and O(n2) in the case K ≤ 3.