If you used binary weights, you wouldn't need 20. You could use 1,2,4, ... 1024 to weigh anything up to 2096, which is more than 2015, with just 11 weights. But you've been told to use 20 weights.
So you could take the last one, 1024, and replace it with two 512s. Now you're using 12 weights and the largest is 512. But you still have 8 more weights available. If you try to split 1024 into three, you're getting down below 512, the binary weight before the 1024. What's more, you're still trying to reach 2096 when you don't need to. So set aside the 1024 and the 512, and you have 1,2,4, ... 256 for 9 weights, and can use 11 weights for the remaining (2015-511) 1504 g. That's an average of 137 each, which is below the 256, so set aside 256 also. Now you have 1,2, 4 ... 128 for 8 weights, and 12 weights for (2015-255) 1760, averaging 147.
In order to make any number up to 512, you will need a "256" - which will be made up of these extra weights - use a pair of 128s, and you have 10 weights accounted for.
In order to make any number up to 1024, you will need a "512". Use 4 128s and you have 14 weights accounted for.
If you wanted to make numbers up to 2096 the next step would be to create a "1024", but you don't. The largest number you need is 2015 which is 991 more than 1024. So if you can make 991 out of 6 weights, you can make any number between 991 and 2015. It averages 165. So you could use 5 165s and a 164.
Can this be improved? What if I had 12 147s after the 1..128 and didn't bother with the "256" and the "512"? They pull the average down because they're only 128. I can make any number up to 255 with the 1..128, so I can make 147, then throw in a 147 and carry on adding 1, 2, 3, 4, to that until I hit 294, then use 2 of the 147s and so on. Now 12x147 is 1764 not 1760, so I need a mix of 157 and 156s to hit 1887.
Using that approach, do I even need that first 128? Well, how else will I make 129? or 130? So I do and the largest weight will have to be 147g.