2016-08-24 168 views
0

我有以下問題 開始時我有一個「對象」,它基本上是一個字符串值的字典。即這不是一個.net對象,它是一種類似javascript對象的構造。算法在有序補丁集合中使用最新補丁對對象值進行補丁

然後我有一個有序的補丁集合(每個補丁集有一個「排名」)。每個補丁集都是一組補丁。每個修補程序都將覆蓋「對象」中的單個字段的值或該字段的任何更高級別的修補程序的值。第一個補丁集中的補丁將覆蓋字段的值。如果下一個補丁集包含指向相同字段的補丁程序,則它將再次被覆蓋等。 我的目標是採用該對象並僅用最新的補丁覆蓋其字段。

例如給定的對象像{價:35,數量:10}和集合的補丁:

  1. [{價:40}]
  2. [{數量:15},{價:20}]

在最後我應該得到{價格:20,數量:15}

我相信有一個算法,但我卡住了。任何建議最受歡迎

回答

1

將集合從頭到尾迭代並跟蹤已經「打補丁」的字段(例如使用Set),只設置以前未設置的字段。如果您計算設置字段的數量並且一旦該計數等於您完成的原始對象中字段的計數,您可以進一步優化。